Skip to content

Python library and cli to communicate with DPUs and IPUs

License

Notifications You must be signed in to change notification settings

opiproject/pydpu

Repository files navigation

pydpu

License Pulls PyPI Code style: black codecov Linters CodeQL OpenSSF Scorecard Docker Tests GitHub stars GitHub Contributors

Python library and cli to communicate with DPUs and IPUs

I Want To Contribute

This project welcomes contributions and suggestions. We are happy to have the Community involved via submission of Issues and Pull Requests (with substantive content or even just fixes). We are hoping for the documents, test framework, etc. to become a community process with active engagement. PRs can be reviewed by by any number of people, and a maintainer may accept.

See CONTRIBUTING and GitHub Basic Process for more details.

Installation

There are several ways of running this CLI.

Docker

docker pull opiproject/pydpu:<version>

You can specify a version like 0.1.1 or use latest to get the most up-to-date version.

Run latest version of the CLI in a container:

docker run -it --rm --network=host opiproject/pydpu:latest --help

Replace --help with any pydpu command, without pydpu itself.

PyPI

pip install pydpu

Usage

Version

To get version, run:

$ pydpu --version
dpu, version 0.1.1

Redfish

To communicate over redfish, run:

pydpu --address=10.10.10.10 redfish --username root --password 0penBmc test

Inventory

To get inventory, run:

pydpu --address=localhost:50151 inventory get

Ipsec

To create a tunnel, run:

pydpu --address=localhost:50151 ipsec create-tunnel

To get statistics, run:

pydpu --address=localhost:50151 ipsec stats

Storage

To create a subsystem, run:

pydpu --address=localhost:50151 storage subsystem

To create a controller, run:

pydpu --address=localhost:50151 storage controller

To create a namespace, run:

pydpu --address=localhost:50151 storage namespace

Evpn

To create a logical bridge, run:

pydpu --address=localhost:50151 evpn bridge

To create a bridge port, run:

pydpu --address=localhost:50151 evpn port

To create a vrf, run:

pydpu --address=localhost:50151 evpn vrf

To create a svi, run:

pydpu --address=localhost:50151 evpn svi

Packaging

This project uses poetry to manage dependencies, build, etc.

Releasing new versions

# Make sure you have dev dependencies installed
$ poetry install --group dev
# Use bump2version to update version strings and create a new tag
$ bump2version <patch|minor|major>
# Push new tag
$ git push --tags
# Create GitHub release
$ gh release create v$(poetry version -s) --generate-notes