AristaLibrary aims to simplify testing projects on Arista EOS <http://www.arista.com> using Robot Framework <http://robotframework.org/> by adding a number of EOS-centric keywords. The Library works by using the PyEAPI module to interact with EOS nodes.
- Robot Framework <http://robotframework.org/>
- PyEAPI <https://pypi.python.org/pypi/pyeapi> (GitHub <https://github.com/arista-eosplus/pyeapi>)
- Arista EOS <http://www.arista.com> 4.12 or later
- Python 2.7
The easiest way to install is to use pip <http://www.pip-installer.org/en/latest/>:
pip install robotframework-aristalibrary
Upgrade using:
pip install --upgrade robotframework-aristalibrary
To install from source:
git clone https://github.com/aristanetworks/robotframework-aristalibrary.git cd robotframework-aristalibrary # Optionally, checkout the development branch" git checkout develop" python setup.py install
See the AristaLibrary <http://aristanetworks.github.io/robotframework-aristalibrary/AristaLibrary.html> keyword documentation.
# -*- coding: robot -*- # :setf robot # :set noexpandtab *** Settings *** Documentation This is a sample Robot Framework suite which takes advantage of ... the AristaLibrary for communicating with and controlling Arista switches. ... Run with: ... pybot --pythonpath=AristaLibrary demo/sample-test-refactored.txt Library AristaLibrary Library Collections Suite Setup Connect To Switches Suite Teardown Clear All Connections *** Variables *** ${TRANSPORT} http ${SW1_HOST} localhost ${SW1_PORT} 2080 ${SW2_HOST} localhost ${SW2_PORT} 2081 ${USERNAME} apiuser ${PASSWORD} donttell *** Test Cases *** Ping Test [Documentation] Configure Et1 on both nodes and ping between them [tags] Configure Configure IP Int 1 ethernet1 10.1.1.0/31 Configure IP Int 2 ethernet1 10.1.1.1/31 ${output}= Enable ping 10.1.1.0 ${result}= Get From Dictionary ${output[0]} result Log ${result} ${match} ${group1}= Should Match Regexp ${result['messages'][0]} (\\d+)% packet loss Should Be Equal As Integers ${group1} 0 msg="Packets lost percent not zero!!!" *** Keywords *** Connect To Switches [Documentation] Establish connection to a switch which gets used by test cases. Connect To host=${SW1_HOST} transport=${TRANSPORT} username=${USERNAME} ... password=${PASSWORD} port=${SW1_PORT} Configure hostname veos0 Connect To host=${SW2_HOST} transport=${TRANSPORT} username=${USERNAME} ... password=${PASSWORD} port=${SW2_PORT} Configure hostname veos1 Configure IP Int [Arguments] ${switch} ${interface} ${ip} Change To Switch ${switch} @{cmds}= Create List ... default interface ${interface} ... interface ${interface} ... no switchport ... ip address ${ip} ... no shutdown Configure ${cmds}
Release notes are available in the GitHub releases <https://github.com/aristanetworks/robotframework-aristalibrary/releases>.
AristaLibrary is a community-supported project, maintained by Arista EOS+. Contact the maintainers at eosplus-dev@arista.com.
Contributing is encouraged via pull requests. Please see CONTRIBUTING.rst for more information.
All code within this repository is made available under the BSD3 license and via the LICENSE file.