Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

ACI Ops

published

Tools to enhance CLI experience replacing slower ACI show commands with additional information.

WARNING: Sandbox (sandboxapicdc.cisco.com) for APIC doesn't fully work with ACI Ops, this is due to the fact that the APICs and Fabric are virtual and don't have all the API object returns relating to real equipment.

Tested in 4.0(3d), 4.1(2m), 4.2(1j), 4.2(3l) APIC This program fully supports Python2 and will be updated to Python3 when ACI's internal platform migrates from Python2.

The entire program uses Python2 Standard Library!
No 3rd party modules to import and update!
Program can run on Windows, Mac, and Linux. Can be ran on local computer or on APIC itself. If on the APIC you can store the program in your home directory.

New Features!

1.) Picture showing interfaces like available in GUI with colors reflecting interface status, role, errors 2.) Show recent ports down 3.) Show all endpoints on interface 4.) Auto create span to server session 5.) Option to select EGPs to remove from interfaces 6.) Option to tag or untag EPGs added to interfaces 7.) Show all static routes 8.) Endpoint Search display physical location if endpoint resides on VPC/PC 9.) Clone access, trunk, or VPC/PC to new interfaces ::Admin state, EPGs (selection possible), Same Leaf selector 10.) Deploy Access, Trunk, or VPC/PC (EPGs, physical, AEP) in single flow 11.) Interface Description and EPG update ::CSV 12.) Show BD > EPG relationships 13.) Troubleshooting tools

Features in Development!

1.) Display every contract between EPGs (vrf contracts, Taboo, and Normal EPGs) and filters in detail; in both directions

Limitations:

Python2 Single Pod-1 deployment Only 1u Leafs supported Some features like log pull may not be limited to single pod or 1u leaf.

Setup

No requriments besides python 2.7 and ssh ACI_Ops can be run on APIC or on local computer Recommend location on APIC for ACI_Ops: home folder for user Local computer needs to have "ssh" in cmd or bash to use tools module in ACI_Ops If running lower than 2.7 ipaddress library will be needed

[OPTIONAL] If you want to run ACI_Ops in a virtualenv for python2.

(linux) sudo pip install virtualenv (windows/admin) pip install virtualenv

python -m virtualenv . or python -m virtualenv <path/to/virtual/location>

If python2 and python3 on same machine you may need to specify: python2 -m virtualenv .cd Scripts
(linux) source activate (windows) activate

Installation

git clone https://github.com/settlej/ACI_Ops.git
cd ACI_Ops
python or python2 main_menu.py

If you want to run on APIC copy all files to the user home directory, via SCP/SFTP. Then run: python main_menu.py

Enviroment Variables

If using running ACI_Ops on local computer, for quick login use these three variables: 1.) apic 2.) user 3.) password apic = [ip/hostname]

Screen Shots:

Image of Main Menu

Important Fault Summary

Image of fault_summary

Show vlans per interface

Image of vlans
Image of vlan2

Add EPGs to Multiple Interfaces

Image of add epgs

Remove EPGs from Multiple Interfaces

Image of remove_epgs

Better 'show interface status'

Image of showinterfaces

Find Endpoints with Additional Information

Image of ip search

Find Endpoints even when Powered Off

Image of poweroff

Gather all logs in timeframe

Image of time
Original Auther: Settlej

About

Tools to enhance CLI experience replacing slow and uninformative show commands in ACI

Topics

Resources

Stars

17 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages