Blame PKG-INFO

Packit b9ca78
Metadata-Version: 2.1
Packit b9ca78
Name: nmstate
Packit Service dbfee5
Version: 1.0.2
Packit b9ca78
Summary: Declarative network manager API
Packit b9ca78
Home-page: https://nmstate.github.io/
Packit b9ca78
Author: Edward Haas
Packit b9ca78
Author-email: ehaas@redhat.com
Packit b9ca78
License: LGPL2.1+
Packit b9ca78
Description: # We are Nmstate!
Packit b9ca78
        A declarative network manager API for hosts.
Packit b9ca78
        
Packit Service dd31ba
        ![CI](https://github.com/nmstate/nmstate/workflows/CI/badge.svg?branch=base)
Packit Service 293802
        [![Coverage Status](https://coveralls.io/repos/github/nmstate/nmstate/badge.svg?branch=base)](https://coveralls.io/github/nmstate/nmstate?branch=base)
Packit b9ca78
        [![PyPI version](https://badge.fury.io/py/nmstate.svg)](https://badge.fury.io/py/nmstate)
Packit b9ca78
        [![Fedora Rawhide version](https://img.shields.io/badge/dynamic/json.svg?label=Fedora%20Rawhide&url=https%3A%2F%2Fapps.fedoraproject.org%2Fmdapi%2Frawhide%2Fpkg%2Fnmstate&query=%24.version&colorB=blue)](https://apps.fedoraproject.org/packages/nmstate)
Packit b9ca78
        [![Code Style](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black)
Packit b9ca78
        [![Language grade: Python](https://img.shields.io/lgtm/grade/python/g/nmstate/nmstate.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/nmstate/nmstate/context:python)
Packit b9ca78
        
Packit b9ca78
        Copr build status, all repos are built for Fedora 31+ and RHEL/CentOS/EPEL 8:
Packit b9ca78
        
Packit b9ca78
        * Latest release: [![Latest release Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate/package/nmstate/)
Packit Service 293802
        * Git base: [![Git base Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-git/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-git/package/nmstate/)
Packit b9ca78
        * Latest 0.2 release: [![Latest 0.2 release Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.2/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.2/package/nmstate/)
Packit b9ca78
        * Git nmstate-0.2: [![Git nmstate-0.2 Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.2-git/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.2-git/package/nmstate/)
Packit Service 293802
        * Latest 0.3 release: [![Latest 0.3 release Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.3/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.3/package/nmstate/)
Packit Service 293802
        * Git nmstate-0.3: [![Git nmstate-0.3 Copr build status](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.3-git/package/nmstate/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/nmstate/nmstate-0.3-git/package/nmstate/)
Packit b9ca78
        
Packit b9ca78
        ## What is it?
Packit b9ca78
        Nmstate is a library with an accompanying command line tool that manages
Packit b9ca78
        host networking settings in a declarative manner.
Packit b9ca78
        The networking state is described by a pre-defined schema.
Packit b9ca78
        Reporting of current state and changes to it (desired state) both conform to
Packit b9ca78
        the schema.
Packit b9ca78
        
Packit b9ca78
        Nmstate is aimed to satisfy enterprise needs to manage host networking through
Packit b9ca78
        a northbound declarative API and multi provider support on the southbound.
Packit b9ca78
        NetworkManager acts as the main (and currently the only) provider supported.
Packit b9ca78
        
Packit b9ca78
        ## State example:
Packit b9ca78
        
Packit b9ca78
        Desired/Current state example (YAML):
Packit b9ca78
        ```yaml
Packit b9ca78
        interfaces:
Packit b9ca78
        - name: eth1
Packit b9ca78
          type: ethernet
Packit b9ca78
          state: up
Packit b9ca78
          ipv4:
Packit b9ca78
            enabled: true
Packit b9ca78
            address:
Packit b9ca78
            - ip: 192.0.2.10
Packit b9ca78
              prefix-length: 24
Packit b9ca78
            dhcp: false
Packit b9ca78
          ipv6:
Packit b9ca78
            enabled: true
Packit b9ca78
            address:
Packit b9ca78
            - ip: 2001:db8:1::a
Packit b9ca78
              prefix-length: 64
Packit b9ca78
            autoconf: false
Packit b9ca78
            dhcp: false
Packit b9ca78
        dns-resolver:
Packit b9ca78
          config:
Packit b9ca78
            search:
Packit b9ca78
            - example.com
Packit b9ca78
            - example.org
Packit b9ca78
            server:
Packit b9ca78
            - 2001:4860:4860::8888
Packit b9ca78
            - 8.8.8.8
Packit b9ca78
        routes:
Packit b9ca78
          config:
Packit b9ca78
          - destination: 0.0.0.0/0
Packit b9ca78
            next-hop-address: 192.0.2.1
Packit b9ca78
            next-hop-interface: eth1
Packit b9ca78
          - destination: ::/0
Packit b9ca78
            next-hop-address: 2001:db8:1::1
Packit b9ca78
            next-hop-interface: eth1
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        ## Basic Operations
Packit b9ca78
        
Packit b9ca78
        Show eth0 current state (python/shell):
Packit b9ca78
        
Packit b9ca78
        ```python
Packit b9ca78
        import libnmstate
Packit b9ca78
        
Packit b9ca78
        state = libnmstate.show()
Packit b9ca78
        eth0_state = next(ifstate for ifstate in state['interfaces'] if ifstate['name'] == 'eth0')
Packit b9ca78
        
Packit b9ca78
        # Here is the MAC address
Packit b9ca78
        eth0_mac = eth0_state['mac-address']
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        ```shell
Packit b9ca78
        nmstatectl show eth0
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        Change to desired state (python/shell):
Packit b9ca78
        
Packit b9ca78
        ```python
Packit b9ca78
        import libnmstate
Packit b9ca78
        
Packit b9ca78
        # Specify a Linux bridge (created if it does not exist).
Packit b9ca78
        state = {'interfaces': [{'name': 'br0', 'type': 'linux-bridge', 'state': 'up'}]}
Packit b9ca78
        libnmstate.apply(state)
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        ```shell
Packit b9ca78
        # use yaml or json formats
Packit b9ca78
        nmstatectl set desired-state.yml
Packit b9ca78
        nmstatectl set desired-state.json
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        Edit the current state(python/shell):
Packit b9ca78
        ```python
Packit b9ca78
        import libnmstate
Packit b9ca78
        
Packit b9ca78
        state = libnmstate.show()
Packit b9ca78
        eth0_state = next(ifstate for ifstate in state['interfaces'] if ifstate['name'] == 'eth0')
Packit b9ca78
        
Packit b9ca78
        # take eth0 down
Packit b9ca78
        eth0_state['state'] = 'down'
Packit b9ca78
        libnmstate.apply(state)
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        ```shell
Packit b9ca78
        # open current state in a text editor, change and save to apply
Packit b9ca78
        nmstatectl edit eth3
Packit b9ca78
        ```
Packit b9ca78
        
Packit b9ca78
        ## Contact
Packit b9ca78
        
Packit b9ca78
        *Nmstate* uses the [nmstate-devel@lists.fedorahosted.org][mailing_list] for
Packit b9ca78
        discussions. To subscribe you can send an email with 'subscribe' in the subject
Packit b9ca78
        to <nmstate-devel-join@lists.fedorahosted.org> or visit the
Packit b9ca78
        [mailing list page][mailing_list].
Packit b9ca78
        
Packit Service 293802
        Sprint tracking happens in 
Packit Service 293802
        ([Github projects](https://github.com/nmstate/nmstate/projects)).
Packit b9ca78
        
Packit b9ca78
        There is also `#nmstate` on
Packit b9ca78
        [Freenode IRC](https://freenode.net/kb/answer/chat).
Packit b9ca78
        
Packit b9ca78
        ## Contributing
Packit b9ca78
        
Packit b9ca78
        Yay! We are happy to accept new contributors to the Nmstate project. Please follow
Packit b9ca78
        these [instructions](CONTRIBUTING.md) to contribute.
Packit b9ca78
        
Packit b9ca78
        ## Installation
Packit b9ca78
        
Packit b9ca78
        For Fedora 29+, `sudo dnf install nmstate`.
Packit b9ca78
        
Packit Service 293802
        For others distribution, please see the [install guide](https://www.nmstate.io/user/install.html).
Packit b9ca78
        
Packit b9ca78
        ## Documentation
Packit b9ca78
        
Packit b9ca78
        * [libnmstate API](https://nmstate.github.io/devel/api.html)
Packit b9ca78
        * [Code examples](https://nmstate.github.io/devel/py_example.html)
Packit b9ca78
        * [State examples](https://nmstate.github.io/examples.html)
Packit b9ca78
        * [nmstatectl user guide](https://nmstate.github.io/cli_guide.html)
Packit b9ca78
        * nmstatectl man page: `man nmstatectl`
Packit b9ca78
        
Packit b9ca78
        ## Limitations
Packit b9ca78
        
Packit b9ca78
        * Maximum supported number of interfaces in a single desire state is 1000.
Packit b9ca78
        
Packit b9ca78
        ## Changelog
Packit b9ca78
        
Packit b9ca78
        Please refer to [CHANGELOG](CHANGELOG)
Packit b9ca78
        
Packit b9ca78
        
Packit b9ca78
        [mailing_list]: https://lists.fedorahosted.org/admin/lists/nmstate-devel.lists.fedorahosted.org
Packit b9ca78
        
Packit b9ca78
Platform: UNKNOWN
Packit b9ca78
Description-Content-Type: text/markdown