Skip to main content

Automated testing of network devices.

Project description

Boardfarm


GitHub GitHub commit activity (branch) GitHub last commit (branch) Python Version Code style: black Code style: black


Boardfarm is an open-source IT automation framework purely written in Python (3.11+).

Its primary focus revolves around systems configuration, infrastructure deployment, and orchestration of advanced IT tasks such as Subscriber Provisioning, Line Termination System bootups (LTS) or a CPE firmware flash via bootloader.

It empowers its users with the ability to automate and comprehensively test their devices across a wide range of target environments.

Motivation

Boardfarm was initially developed at Qualcomm to automate testing of OpenWrt routers and other embedded devices.

Over time, the framework evolved to support RDK-B derived boards and IoT devices, along with the essential OSS and back-office components necessary for simulating a Telecom Service Providers' environment.

The operation of a device or the configuration of a server can vary depending on the specific hardware variant or the infrastructure layout of the deploying Telecom Operator.

To address this variability, Boardfarm utilizes Pluggy to introduce a hook structure that enables its users to register customized code through plugins for each individual infrastructure component.

This structure also enforces a uniform API specification, allowing plugins to invoke their implementation at any of the predefined checkpoints within the Boardfarm's execution cycle, offering flexibility and extensibility.

Features

  • Modular Hook definitions enabling users to independently initiate the bootup/deployment process for each component within the infrastructure, offering granular control and flexibility.
  • Seamless integration with Pytest. Provides easy access to devices along with their pre-set operations through protocol-specific libraries.
  • A versatile connection manager that abstracts physical device connections, offering a unified set of APIs for RS232, SSH, Telnet, SNMP, and HTTP(s) communication with the infrastructure.
  • A library of device templates (Python ABCs) that can be inherited and customized for implementing hardware interactions without application or server specific constraints.
  • A plugin architecture that enables vendors and OEMs to perform testing and provisioning on their firmware builds/devices, whether in a predefined production or fully simulated test environment.
  • Integration with Docker/QEMU to simulate various test environments and devices.

Installation

Run the following command to directly install the package from the repo:

pip install git+https://github.com/lgirdk/boardfarm.git

Run the following command to install from PyPI:

pip install boardfarm3

Plugin

If you also want to install Boardfarm’s plugins for DOCSIS (boardfarm3-docsis) and Pytest (pytest-boardfarm3), you can install them together using extras:

pip install "boardfarm3[docsis, pytest]"

Usage

boardfarm -h

This will display help for the framework. Here are all the switches it supports.

usage: boardfarm [-h] --board-name BOARD_NAME --env-config ENV_CONFIG --inventory-config INVENTORY_CONFIG [--legacy] [--skip-boot] [--skip-contingency-checks] [--save-console-logs]

options:
  -h, --help            show this help message and exit
  --board-name BOARD_NAME
                        Board name
  --env-config ENV_CONFIG
                        Environment JSON config file path
  --inventory-config INVENTORY_CONFIG
                        Inventory JSON config file path
  --legacy              allows for devices.<device> obj to be exposed (only for legacy use)
  --skip-boot           Skips the booting process, all devices will be used as they are
  --skip-contingency-checks
                        Skip contingency checks while running tests
  --save-console-logs   Save console logs to the disk

Documentation

For full documentation, including installation, tutorials and architecture overview and how to run a prplOS demo with a CPE, ACS, lan, wan devices, please see the following.

Boardfarm Read the Docs

Changelog

Consult the CHANGELOG page for fixes and enhancements of each version.

License

Distributed under the terms of the Clear BSD License, Boardfarm is free and open source software.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boardfarm3-1.1.0.tar.gz (448.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

boardfarm3-1.1.0-py3-none-any.whl (551.9 kB view details)

Uploaded Python 3

File details

Details for the file boardfarm3-1.1.0.tar.gz.

File metadata

  • Download URL: boardfarm3-1.1.0.tar.gz
  • Upload date:
  • Size: 448.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for boardfarm3-1.1.0.tar.gz
Algorithm Hash digest
SHA256 42ca8633e3754481187fe883d4737765208c4f20aeb7e69bb929b88beaf14878
MD5 d5b027858daa0cd88d5a7d444cda06b8
BLAKE2b-256 8d73c43f584aca0b8e0f2ad55798f84107301069b8fcb14ef6084d2ac6a9c16b

See more details on using hashes here.

File details

Details for the file boardfarm3-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: boardfarm3-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 551.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for boardfarm3-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5cb1b40aeeb15da6b0bdb0e6af130117c89591f4988a6a89d8e453043e30972
MD5 3a6dccee9cd528bbd878042e5e90602a
BLAKE2b-256 ec58cdcef3ff5bd13aa7df7d056a103b81c3acd9b678e2860ee1bb6bb99d63dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page