Skip to content

Detect NetworkManager connection add/remove events and maintain the internal state in sync#3244

Merged
teclator merged 6 commits intonetwork-202603from
listen_network_improvements
Mar 11, 2026
Merged

Detect NetworkManager connection add/remove events and maintain the internal state in sync#3244
teclator merged 6 commits intonetwork-202603from
listen_network_improvements

Conversation

@teclator
Copy link
Copy Markdown
Contributor

@teclator teclator commented Mar 6, 2026

Problem

Currently Agama is not aware when new connections are added or removed by third party tools like the nmcli.

Solution

  • Implement automatic detection and handling of NetworkManager connection add/remove events, ensuring the internal network state stays synchronized with the system.
  • Removed some Actions which are not needed at least by now like (AddConnection or SetPorts).

Testing

  • Added a new unit test
  • Tested manually

@teclator teclator force-pushed the listen_network_improvements branch from 7c9390f to b2f44c1 Compare March 6, 2026 09:23
@teclator teclator changed the base branch from master to network-202603 March 6, 2026 13:27
@teclator teclator force-pushed the listen_network_improvements branch from b2f44c1 to 924953c Compare March 10, 2026 15:22
@teclator teclator marked this pull request as ready for review March 11, 2026 10:36
Co-authored-by: Knut Alejandro Anderssen González <kanderssen@suse.de>
@teclator teclator merged commit f25544d into network-202603 Mar 11, 2026
9 of 10 checks passed
@teclator teclator deleted the listen_network_improvements branch March 11, 2026 12:43
let result = match update {
NmChange::GeneralStateChanged => self.handle_general_state_changed().await,
NmChange::ConnectionAdded(path) => self.handle_connection_added(path).await,
NmChange::ConnectionRemoved(path) => self.handle_connection_removed(path).await,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I failed to find where it reads connections...so it basically depends on reading it reactively. Do not make it sense to also have something like read_connections at the beginning or run?

Copy link
Copy Markdown
Contributor Author

@teclator teclator Mar 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably makes sense.

dgdavid added a commit that referenced this pull request Mar 16, 2026
## Problem

Beyond the usual enhancements, there was some pending work to make the
network pages more useful for users. The following issues were
identified as high priority:

* Associated devices to connection: it is difficult to identify which
devices belong to each connection. Improving the connection list to
clearly show associated devices would make it easier for users to manage
their networks.

* Contextual actions for connections: Users can only click to view a
connection and then edit it. Would be better providing a contextual menu
with actions such as view details, edit, connect, or delete allows users
to perform common tasks more efficiently.

* Creating new connections: Users can only edit existing connections,
which limits a lot the network configuration. Adding the ability to
create new connections will address this gap and improve overall
usability.

Related to,

-
https://trello.com/c/jvgwGFIl/5581-8-bsc1247441-agama-ui-does-not-allow-to-add-or-remove-network-connections
(protected link)
- https://bugzilla.suse.com/show_bug.cgi?id=1247441 (protected link)
- https://jira.suse.com/browse/PED-15913 (protected link)

## Solution

* Backend enhancements: Added a backend improvement to notify the system
about added or removed connections, as well as changes to devices,
ensuring the internal state stays in sync (see PR #3244 ).

* Connections table: Brought back the connections table, enhanced to
give users more control and visibility over their connections.

* Manage connections: Users can now add and remove connections directly
from the UI.

* IP settings improvements: Added the dnsSearchList field to the
connection IPSettingsForm to support additional DNS configuration
options (related to https://jira.suse.com/browse/PED-15913).
@imobachgs imobachgs mentioned this pull request Mar 17, 2026
imobachgs added a commit that referenced this pull request Mar 17, 2026
Prepare to release version 19.

* #1829
* #2508
* #2772
* #2818
* #2826
* #2848
* #2860
* #2863
* #2864
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2937
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2949
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2981
* #2982
* #2983
* #2984
* #2988
* #2989
* #2990
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2998
* #2999
* #3000
* #3001
* #3002
* #3004
* #3005
* #3006
* #3007
* #3008
* #3009
* #3011
* #3012
* #3013
* #3014
* #3015
* #3016
* #3018
* #3019
* #3020
* #3021
* #3022
* #3023
* #3024
* #3025
* #3026
* #3027
* #3028
* #3029
* #3030
* #3031
* #3033
* #3034
* #3035
* #3036
* #3037
* #3039
* #3040
* #3041
* #3042
* #3043
* #3044
* #3045
* #3046
* #3047
* #3048
* #3049
* #3050
* #3051
* #3052
* #3053
* #3054
* #3055
* #3056
* #3057
* #3058
* #3060
* #3061
* #3062
* #3063
* #3064
* #3065
* #3066
* #3067
* #3068
* #3069
* #3070
* #3071
* #3072
* #3073
* #3074
* #3075
* #3076
* #3077
* #3078
* #3079
* #3086
* #3087
* #3088
* #3089
* #3090
* #3091
* #3092
* #3093
* #3094
* #3095
* #3096
* #3097
* #3098
* #3099
* #3100
* #3101
* #3102
* #3103
* #3104
* #3105
* #3106
* #3107
* #3108
* #3109
* #3110
* #3112
* #3113
* #3114
* #3115
* #3116
* #3117
* #3118
* #3119
* #3120
* #3122
* #3123
* #3124
* #3127
* #3128
* #3129
* #3130
* #3131
* #3133
* #3134
* #3135
* #3136
* #3137
* #3138
* #3139
* #3140
* #3141
* #3142
* #3143
* #3144
* #3145
* #3146
* #3147
* #3148
* #3149
* #3150
* #3151
* #3152
* #3153
* #3154
* #3155
* #3157
* #3158
* #3159
* #3160
* #3161
* #3162
* #3163
* #3164
* #3165
* #3166
* #3167
* #3168
* #3169
* #3170
* #3174
* #3175
* #3176
* #3177
* #3178
* #3179
* #3181
* #3182
* #3184
* #3185
* #3186
* #3188
* #3189
* #3190
* #3191
* #3192
* #3194
* #3195
* #3196
* #3197
* #3198
* #3199
* #3200
* #3201
* #3202
* #3203
* #3205
* #3206
* #3208
* #3209
* #3210
* #3213
* #3214
* #3215
* #3216
* #3217
* #3218
* #3219
* #3220
* #3222
* #3223
* #3224
* #3225
* #3226
* #3227
* #3228
* #3229
* #3230
* #3231
* #3232
* #3233
* #3234
* #3235
* #3236
* #3237
* #3238
* #3239
* #3240
* #3241
* #3242
* #3243
* #3244
* #3246
* #3247
* #3248
* #3250
* #3251
* #3252
* #3253
* #3254
* #3255
* #3256
* #3257
* #3258
* #3259
* #3260
* #3261
* #3262
* #3263
* #3265
* #3266
* #3267
* #3268
* #3269
* #3270
* #3271
* #3272
* #3273
* #3274
* #3275
* #3276
* #3277
* #3278
* #3279
* #3280
* #3281
* #3282
* #3283
* #3284
* #3285
* #3286
* #3287
* #3288
* #3289
* #3290
* #3291
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Mar 18, 2026
https://build.opensuse.org/request/show/1340718
by user IGonzalezSosa + anag_factory
- Version 19

- Ensure the list of storage issues is correctly updated
  (gh#agama-project/agama#3291).

- fix the ssh keys for first user (gh#agama-project/agama#3290)

- Ensure storage system is probed before configuring DASD
  (bsc#1259354).

- Extend the network service to monitor connections, access points,
  and general state changes, ensuring awareness of external
  modifications to the network.
- Notify about System or Proposal changes when applying the
  configuration and added progress reporting.
- Notify about System changes when devices change
  (gh#agama-project/agama#3244, gh#agama-project/agama#3247,
  gh#agama-project/agama#3276).

- Fix method for getting zFCP issues (gh#agama-project/agama#3287).

- Fix the sshPublicKeys alias (gh#agama-project/agama#3284).

- jsc#PED-1543
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants