Multi-interface compatibility with SSH, Telnet and Serial, pure python support, and best-in-class developer experience

Build automation testing with ease using

guerrilla

$pip install guerrilla
Guerrilla Icon

SDK library you’ll enjoy using 🐱

from guerrilla.device import Device
config = {
"name": "EDR-G9010",
"type": "mxros",
"protocol": "ssh",
"host": "192.168.127.254",
"username": "admin",
"password": "moxa",
}
device = Device(config)
device.connect()
device.run('show version')
Multi-interface compatibility with SSH, Telnet and Serial, pure python support, and best-in-class developer experience.
Quick Response
Fast and reliable response time
Build-in Functions
Build-in functions for device automation testing
Amazing DX
Low learning curve, great developer experience

Master Automation Unveiling Network Devices

Guerrrilla uses modern and sweet Python3 syntax to give you best console output.

device.find_prompt()
# 'Firewall/VPN Router 00000#'
device.run('configure)
device.run('hostname Guerrilla-Best')
device.run('exit')
device.run('show system')



"""
System Name : Guerrilla-Best
System Location : Device Location
System Description :
Maintainer Information :
Host Name : Guerrilla-Best
MAC Address : 00:90:E8:12:34:56
Serial No. : MOXA00000000
System Uptime : 0d2h7m18s
CPU Frequency : 0 MHz
"""

Build-In Functions Support

Execute network device commands with ease.
No more manual work. 🦾
No more getting lost in the terminal. 😻

Guerrilla SDK
device.config.hostname.set_hostname('Guerrilla-Best')
device.show_system()

"""
System Information
System Name : Guerrilla-Best
System Location : Device Location
System Description :
Maintainer Information :
Host Name : Guerrilla-Best
MAC Address : 00:90:E8:12:34:56
Serial No. : MOXA00000000
System Uptime : 0d0h11m46s
CPU Frequency : 0 MHz
"""
Tranditional Terminal
> ssh admin@192.168.127.254

admin@192.168.127.254's password:
MOXA EDR-G9010-VPN-2MGSFP-T Series V3.2.99 build 23110317
--------------------------------------------------------------------------------
Please change the default username and password in order to enhance security.

Firewall/VPN Router 00000# configure
Firewall/VPN Router 00000(config)# hostname many-steps
Firewall/VPN Router 00000(config)# exit
Firewall/VPN Router 00000# save
Please wait, saving configurations ...
Successful!
Firewall/VPN Router 00000# show system
System Information
System Name : many-steps
System Location : Device Location
System Description :
Maintainer Information :
Host Name : many-steps
MAC Address : 00:90:E8:12:34:56
Serial No. : MOXA00000000
System Uptime : 0d0h6m54s
CPU Frequency : 0 MHz
Firewall/VPN Router 00000#

Intergration Automation Tesintg Framework just like Stitches

Guerrilla gives you a robust functions to define scripts to help you create automation testing.
PyTest, BDD-Behave, and more.

# pytest

def test_set_hostname():
device.config.hostname.set_hostname('pytest)
ret = device.show_system()

assert 'pytest' in ret.output, 'hostname not set'

# behave

@given('I set hostname to {hostname}')
def step_impl(context, hostname):
context.device.config.hostname.set_hostname(hostname)

@then('the hostname should be {hostname}')
def step_impl(context, hostname):
ret = context.device.show_system()

assert hostname in ret.output, 'hostname not set'

Works Everywhere.

Guerrilla works out of box with your favorite network devices. Use it with router, switch, linux server.
Cat riding a rocket
Start building with
Guerrilla today

Join our community

Get support, get involved and join our community of developers - Hop into our GitLab
Join our GitLab