forked from NationTech/harmony
		
	* Expose a high-level `brocade::init()` function to connect to a Brocade switch and automatically pick the best implementation based on its OS and version * Implement a client for Brocade switches running on Network Operating System (NOS) * Implement a client for older Brocade switches running on FastIron (partial implementation) The architecture for the library is based on 3 layers: 1. The `BrocadeClient` trait to describe the available capabilities to interact with a Brocade switch. It is partly opinionated in order to offer higher level features to group multiple commands into a single function (e.g. create a port channel). Its implementations are basically just the commands to run on the switch and the functions to parse the output. 2. The `BrocadeShell` struct to make it easier to authenticate, send commands, and interact with the switch. 3. The `ssh` module to actually connect to the switch over SSH and execute the commands. With time, we will add support for more Brocade switches and their various OS/versions. If needed, shared behavior could be extracted into a separate module to make it easier to add new implementations.
		
			
				
	
	
		
			19 lines
		
	
	
		
			420 B
		
	
	
	
		
			TOML
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			420 B
		
	
	
	
		
			TOML
		
	
	
	
	
	
| [package]
 | |
| name = "brocade"
 | |
| edition = "2024"
 | |
| version.workspace = true
 | |
| readme.workspace = true
 | |
| license.workspace = true
 | |
| 
 | |
| [dependencies]
 | |
| async-trait.workspace = true
 | |
| harmony_types = { path = "../harmony_types" }
 | |
| russh.workspace = true
 | |
| russh-keys.workspace = true
 | |
| tokio.workspace = true
 | |
| log.workspace = true
 | |
| env_logger.workspace = true
 | |
| regex = "1.11.3"
 | |
| harmony_secret = { path = "../harmony_secret" }
 | |
| serde.workspace = true
 |