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

jcronenberg / agama / 7222306500
63%

Build:
DEFAULT BRANCH: master
Ran 15 Dec 2023 12:58PM UTC
Jobs 3
Files 659
Run time 29s
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: 74.669% (-0.1%) from 74.79%
7222306500

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)

1386 of 2129 branches covered (0.0%)

Branch coverage included in aggregate %.

234 of 355 new or added lines in 13 files covered. (65.92%)

7 existing lines in 5 files now uncovered.

15902 of 21024 relevant lines covered (75.64%)

21.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 rust - 7222306500.1 15 Dec 2023 12:58PM UTC 0
41.17
GitHub Action Run
1 service - 7222306501.1 15 Dec 2023 12:57PM UTC 0
84.88
GitHub Action Run
1 web - 7209693471.1 14 Dec 2023 01:43PM UTC 0
73.61
GitHub Action Run
Source Files on build 7222306500
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #7222306500
  • 627f657b on github
  • Prev Build on master (#7222306501)
  • Next Build on master (#7247180737)
  • 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