Skip to content
Till Maas edited this page Mar 10, 2020 · 6 revisions

Improve Network Linux System Role 2020 GSoC project

Description

The Network Linux System Role provides a uniform configuration interface for network-scripts and NetworkManager. In this project, the role would be improved. There are several areas that could be selected by an intern depending on their interest:

Add support for more interfaces/options, this includes the following tasks

Improve the testing framework

  • Write an integration test to become familiar with the role, for example for https://github.com/linux-system-roles/network/issues/124
  • Make the tests more uniform (they developed over the time. Adjust old tests to use the conventions of newer tests)
  • Add support to test the ansible module directly via pytest instead of only via ansible-playbook
  • Simplify test playbooks by writing custom Ansible modules that simplify test setup/preparation and assertions

Network state management (most difficult)

  • Support to update only partial settings
  • Return the current network configuration
  • Initially only the configuration files
  • Maybe also the runtime state

What are we looking for

  • Interest in writing high-quality code in Python for Ansible
  • Personal accountability with regular, clear and open communication
  • Ability to independently transfer feedback into code
  • Support for more features or a better test framework
  • Effective collaboration via GitHub, IRC and video conferences

First Steps

  • Subscribe to the system roles mailing list and send an introduction message. Tell us which area interests you and why you would like to participate
  • If you are using IRC, join the #systemroles IRC channel on freenode and say Hi (it is rather new, therefore there is not much going on, yet)
  • Take a look at the integration tests and try to get them running. The are run by a custom CI tool and are inspired by the Standard Test Interface
  • Get the unit and linting tests running using tox
  • Optional: Get the molecule tests running by running tox -e molecule (this requires being able to run docker as the current user)
  • Study the recently added integration tests: tests_ethtool_features_nm.yml and tests_ethtool_features_initscripts.yml
  • Possible initial tasks:
    • Port one of the old tests to use the same format as the new tests:
      • Pick one of tests_bridge.yml, tests_default.yml, tests_ethernet.yml and create a new issue in the issue tracker to indicate that you plan to work on it and submit a PR with the new test that references the issue
      • Once you did it, create a new PR that references your issue and request a review from @tyll
    • Create a new test using the example files from https://github.com/linux-system-roles/network/issues/124#issuecomment-572250996
    • Look through the README for examples and write a simple test for them if there is none already
  • Watch this wiki page for updates
Clone this wiki locally