rustmiko 0.6.0

A Netmiko rewrite for Rust
Documentation
use std::thread::sleep;
use std::time::Duration;
use rustmiko::devices::generic::device_types::config::{Configurable, InterfaceConfigurable};
use rustmiko::devices::juniper::JuniperSSH;

fn main() -> anyhow::Result<()> {
    env_logger::init();

    let mut juniper = match JuniperSSH::connect("192.168.178.1:22", "admin", "admin") {
        Ok(device) => {
            println!("Connected successfully");
            device
        },
        Err(e) => {
            eprintln!("Failed to connect: {}", e);
            return Ok(());
        },
    };

    juniper.enter_cli()?;
    {
        let mut config = juniper.enter_config()?;
        let interface = config.get_interface("ge-", &[0, 0, 0]);

        config.interface_down(&interface)?;

        config.commit()?;

        sleep(Duration::from_secs(20));

        config.interface_up(&interface)?;

        config.commit()?;
    }

    Ok(())
}