• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

jcronenberg / agama / 7222306501 / 1
63%
master: 63%

Build:
DEFAULT BRANCH: master
Ran 15 Dec 2023 12:57PM UTC
Files 304
Run time 5s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Dec 2023 11:30AM UTC coverage: 84.883%. First build
7222306501.1

push

github

web-flow
Add bonding support (#885)

This PR adds support for configuring a Bond connection using Agama
auto-installation.

## The model

Initially, we thought each connection struct would take ownership of its
ports (basically, other connections). However, after some discussion
with the networking team, we agreed to keep a "reference" in the
opposite direction (from the port to the controller). At this point,
each connection that belongs to a bond keeps its parent UUID.

## Configuring a port

When using the auto-installation you can define the port with something
like this:

```rust
      {
        id: 'bond0',
        bond: {
            ports: ['eth0', 'eth1'],
            mode: 'active-backup',
            options: "primary=eth1"

        }
      },
      {
        id: 'Wired Adapter 1',
        interface: 'eth1'
      }
```

In NetworkManager, it is mandatory to specify an interface name.
However, Agama will use the `id` if you do not define the `interface`.
About the ports, it is not required to define them (in the example
above, `eth0` is missing). Agama will create a connection automatically.
And, again, you can use the `id` or the `interface` to link both
connections.

## Improving the D-Bus interface

As the list of ports is not part of the `BondConnection` struct, it is
not straightforward to expose that information in the D-Bus interface.
After all, the code that exposes each connection over D-Bus only had
access to the information of its specific connection (actually, it owns
a clone of the connection).

For that reason, starting with the
[Bond](https://github.com/openSUSE/agama/blob/add_bonding_support/rust/agama-dbus-server/src/network/dbus/interfaces.rs#L312)
interface, we implemented a better mechanism (based on message passing)
to interact with the data model. We will open a separate PR to adapt the
rest of interfaces (with more information about the problems it solves).

## What's next?
... (continued)

8928 of 10518 relevant lines covered (84.88%)

16.3 hits per line

Source Files on job service - 7222306501.1
  • Tree
  • List 0
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 7222306501
  • 627f657b on github
  • Prev Job for on master (#7209693443.)
  • Next Job for on master (#7222306500.1)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc