Outreachy: Week 5

Nmstate and Nispor for newcomers

I can’t even believe that I am almost at the mid of my internship. Past few weeks have brought such enriching experiences for me. I can see myself growing and learning new concepts every day. Overall, I am learning and enjoying my journey. This blog aims at helping newcomers to know more about nmstate and nispor and how to get started.

About the project

As mentioned on the project repository

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.

On the other hand, the nispor(Network Inspector) project is designed to providing a unified interface for Linux network state querying. Basically, nmstate uses nispor to provide the interface. Nispor is a native rust/c/python API and a command-line tool that queries Linux network state.

Goals to achieve

There are users that want to configure Wireguard and Wifi interfaces using Nmstate/Nispor. In order to solve this issue, I am working on implementing the wireguard on nmstate using NetworkManager and Nispor. After wireguard support is completely done. We will try to add Wifi support as well to Nmstate and Nispor.

For newcomers

Nmstate is a very newcomer friendly community. Anyone working in the field of networking or even with basic knowledge can start with the project. The community is so warm and welcoming and everyone is ready to help. All you need to do is drop a hi in IRC channel(#nmstate) with your introduction and how you want to proceed and I am sure someone will be there to help you out. The two most important thing that caught my attention when I started out was that everything is so well documented and the codebase is quite descriptive and my mentor(goes by ffmancera on IRC) sent me some really resourceful study material for me to understand the project in a deeper sense. These things really help me kickstart my contribution.

Contributing for more than a month now I can see me grow from a person totally clueless at the beginning to somebody who can now complete my tasks on my own. I learned so many new terms and coding practices. Outreachy has really helped me professionally and personally both. Thank you for lending me your ears. See you in the next blog and hope you loved the blog. :D