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

openSUSE / agama / 7221485565
72%

Build:
DEFAULT BRANCH: master
Ran 15 Dec 2023 11:33AM UTC
Jobs 3
Files 659
Run time 32s
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%
7221485565

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.04 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
74.19
0.24% rust/agama-dbus-server/src/network/dbus/tree.rs
1
34.48
-0.6% rust/agama-dbus-server/src/network/nm/model.rs
2
76.04
6.81% rust/agama-dbus-server/src/network/dbus/interfaces.rs
3
73.89
6.45% rust/agama-dbus-server/src/network/model.rs
3
71.88
11.35% rust/agama-dbus-server/src/network/system.rs
4
77.78
rust/agama-dbus-server/src/network/model/builder.rs
7
50.0
50.0% rust/agama-lib/src/network/store.rs
18
0.0
0.0% rust/agama-dbus-server/src/network/nm/client.rs
18
80.56
-7.39% rust/agama-lib/src/network/client.rs
20
0.0
0.0% rust/agama-dbus-server/src/network/nm/adapter.rs
21
48.94
-22.49% rust/agama-lib/src/network/types.rs
23
82.71
-5.96% rust/agama-dbus-server/src/network/nm/dbus.rs

Uncovered Existing Lines

Lines Coverage ∆ File
1
0.0
0.0% rust/agama-dbus-server/src/network/nm/adapter.rs
1
82.71
-5.96% rust/agama-dbus-server/src/network/nm/dbus.rs
1
34.48
-0.6% rust/agama-dbus-server/src/network/nm/model.rs
1
50.0
50.0% rust/agama-lib/src/network/store.rs
3
0.0
0.0% rust/agama-dbus-server/src/network/nm/client.rs
Subprojects
ID Flag name Job ID Ran Files Coverage
1 rust 7221485565.1 15 Dec 2023 11:33AM UTC 62
41.17
GitHub Action Run
1 web 7206785868.1 14 Dec 2023 09:19AM UTC 293
73.61
GitHub Action Run
1 service 7220518321.1 15 Dec 2023 09:54AM UTC 304
84.88
GitHub Action Run
Source Files on build 7221485565
  • Tree
  • List 659
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #7221485565
  • 627f657b on github
  • Prev Build on master (#7220518321)
  • Next Build on master (#7223541798)
  • 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