Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

We are nmstate!

A declarative network manager API for hosts.

Build Status Coverage Status

What is it?

NMState is a library with an accompanying command line tool that manages host networking settings in a declarative manner. The networking state is described by a pre-defined schema. Reporting of current state and changes to it (desired state) both conform to the schema.

NMState is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound. NetworkManager acts as the main (and currently the only) provider supported.

Development Environment

Install:

pip install tox pbr

Run Unit Tests:

tox

Runtime Environment

Install (from sources) system-wide:

sudo pip install --upgrade .

Install just for the local user:

pip install --user --upgrade .

Make sure that ~/.local/bin is in your PATH when installing as a local user. The export command can be used to add it for the current session:

export PATH="${HOME}/.local/bin:${PATH}"

Basic Operations

Show current state:

nmstatectl show

Change to desired state:

nmstatectl set desired-state.json

Edit current state of eth3 in a text editor:

nmstatectl edit --only eth3

nmstatectl will also read from stdin when no file is specified:

nmstatectl set < desired-state.json

Desired/Current state example:

{
    "interfaces": [
        {
            "description": "Production Network",
            "ethernet": {
                "auto-negotiation": true,
                "duplex": "full",
                "speed": 1000
            },
            "ipv4": {
                "address": [
                    {
                        "ip": "192.0.2.142",
                        "prefix-length": 24
                    }
                ],
                "enabled": true
            },
            "mtu": 1500,
            "name": "eth3",
            "state": "up",
            "type": "ethernet"
        }
    ]
}

The state is also supported as YAML, to get the current state in YAML format:

nmstatectl show --yaml

The set command accepts both YAML and JSON.

Supported Interfaces:

  • bond
  • dummy
  • ethernet
  • ovs-bridge

Metadata

Release files for nmstate 0.0.1.dev187

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nmstate 0.0.1.dev187
File Size Uploaded Provenance
nmstate-0.0.1.dev187.tar.gz 58.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for nmstate 0.0.1.dev187
File Interpreter ABI Platform
nmstate-0.0.1.dev187-py2-none-any.whl Python 2 none any Details

Total release size: 96.1 kB

Release files / nmstate-0.0.1.dev187.tar.gz

Download URL nmstate-0.0.1.dev187.tar.gz
Size 58.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f5a08d6aee9c5f4b9e618f094b45c8858da479fa24bcbe409b9e33bbd5b8d5f2
BLAKE2b-256 checksum
How to use checksums
fc885b9c8bce89d6ec0fb39081c356d2d203ec79c0ce407c64cc332b32f472f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.5

Release files / nmstate-0.0.1.dev187-py2-none-any.whl

Download URL nmstate-0.0.1.dev187-py2-none-any.whl
Size 37.5 kB
Tags Python 2
SHA-256 checksum
How to use checksums
8778c929fb83c9331dda268a0f960099e0e71238bff1eab277b69e5c7226a801
BLAKE2b-256 checksum
How to use checksums
52d95818c009d24faf7f58dd46fd8cb8b9dc231325f569ece930b8f218587758
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/2.7.5

Security for nmstate 0.0.1.dev187

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page