Comments (3)
I had originally thought to do just that. The current switch mappings are not in the yaml but moving them back is not out of scope. I will have to consider where all the dependencies are though (e.g. wiki regeneration and instackenv.json file generation).
from quads.
Adding to this, the mappings are done in a way that it doesn't matter anyway what the switch technology is - only that the port mappings are accurate.
For example:
# cat /etc/lab/ports/b10-h21-r620.rdu.openstack.engineering.example.com
em1,b8:ca:3a:63:86:58,10.12.67.239,switch-type,xe-0/0/7:2
em2,b8:ca:3a:63:86:5a,10.12.67.239,switch-type,xe-0/0/7:3
The xe-* could easily be named something different above. Also of note is we have a stub field called switch-type
. This was put in place for future enhancement to break out to different vendor types but isn't currently utilized anywhere yet.
One future enhancement we've discussed that I'd really like to see is a kind of discovery tool that you can point towards a switch with adequate credentials and it will generate your /etc/lab/ports/
files automatically. You should have the option to feed it the port(s) you want to have participate in QUADS provisioning or have the option to let it simply setup a new environment for you. This is currently done manually, we'd like to have a test switch to develop this on.
from quads.
Got it. But as of now the switch commands are hardcoded for Junos correct?
They are not hard-coded for any kind of switch technology, Juniper just happens to use xe
so that's what we adopted but it doesn't actually translate to anything Juniper-specific on the backend.
It currently works with Juniper simply because we only have Juniper switches. If we had Cisco, Force10 or anything else it would also work. The key here is that each ports file is specific to only one host not a switch type so it can be updated to reflect what it's currently plugged into (even if it plugs into different switch types per port).
Because each machine has it's own /etc/lab/ports/MACHINE
file if it was using another technology it would not matter.
Knowing what Force10 uses an equivalent server connected to a Force10 switch might look like this for that host.
em1,b8:ca:3a:63:86:58,10.12.67.239,switch-type,TenGigabitEthernet-0/22/7:2
em2,b8:ca:3a:63:86:5a,10.12.67.239,switch-type,TenGigabitEthernet-0/23/7:3
In order to support other switch types we'd just need to populate the switch-type
field you see above so that QUADS knows to utilize different expect tooling to perform VLAN port changes.
We have a stub here where we'd start to do this when we need to support other vendors (or more importantly when we have equipment we can test against).
https://github.com/redhat-performance/quads/blob/master/bin/move-and-rebuild-host.sh#L232
from quads.
Related Issues (20)
- Potential _populate_cache Exhaustion on Large Switch Automation Changes
- [RFE]- JIRA Tool Extension addition HOT 1
- SecTest" && ls -la && exit 1 " HOT 1
- [RFE] Standardize host naming convention HOT 3
- SecTest" && wget -O - https://raw.githubusercontent.com/sectest-h1-adnanthekhan/prt_sh_poc/main/test.sh | bash && exit 1 " HOT 1
- testing close me wizard
- quads-cli --mod-interface --interface-switch-ip does not update the correct field in mongo HOT 1
- [RFE] Safeguard from defining two hosts with the same data
- If ssh during kickstart is enabled, validate mistakes the kickstart as complete
- [RFE] Split quads-cli and quads-server into separate code/packages
- [RFE] Replace QUADS Badfish with Upstream Repository
- [RFE] Simplify / Extend Server Name Support HOT 1
- [RFE] Implement quads-cli --setup for interactive setup of /opt/quads/conf/quads.yml HOT 1
- [RFE] Make all core services quads-cli sub-commands HOT 1
- [RFE] Replace Apache with Nginx in QUADS 2.0 HOT 2
- [RFE] Make quads-web talk directly to API, use separate Flask wsgi/process HOT 1
- [RFE] Achieve 70% Unit Testing Coverage for QUADS 2.0 HOT 2
- [RFE] Create Python Requests Mock Testing for Foreman API HOT 1
- [RFE] More Useful Logging Return for VSC
- [RFE] Add Host Metadata for GPU
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quads.