Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Track and display the current network configuration #1158

Merged
merged 42 commits into from
Apr 30, 2024

Conversation

imobachgs
Copy link
Contributor

@imobachgs imobachgs commented Apr 22, 2024

Trello: https://trello.com/c/KYDDRo30/3630-8-display-the-running-network-configuration

This PR adds support for tracking the status of the network devices and displaying that information through the web UI.

Extending the networking model

Now the Device struct includes information about its current state, including its IP configuration, MAC address, device state, etc.

To keep this information up-to-date, we introduced the concept of network watchers which listens for events in the corresponding backend and update the network model accordingly. We implemented a NetworkManager Watcher.

+----------+  actions    +---------------+   actions   +---------------+
|  Watcher |---------->  | Network Model | <---------->| HTTP/JSON API |
+----------+             +---------------+    events   +---------------+
      |
      | listens
+----------------+
| NetworkManager +
+----------------+

Adapting the UI

When it comes to the web UI, we decided to make it work with the new updates mechanism, but nothing else. We plan to invest some time in rethinking that part of the UI (as we did for storge), but not now.

Screenshots

Overview with a single device

Overview 1 device

Overview with two devices

Overview 2 devices

Network page including wired and wireless devices

Network Page

Editing a wired connection

Edit wired

Editing a wireless connection

Edit wireless

teclator and others added 28 commits April 11, 2024 11:38
* It is still a work in progress, but now it detects IP configuration
  changes too.
* Avoid deadlocks when dispatching the action.
@imobachgs imobachgs changed the title Network running config Track and display the current network configuration Apr 22, 2024
@coveralls
Copy link

coveralls commented Apr 22, 2024

Coverage Status

coverage: 68.747% (-1.4%) from 70.139%
when pulling ae94b4e on network_running_config
into b43af77 on architecture_2024.

@teclator teclator marked this pull request as ready for review April 23, 2024 08:49
Copy link
Contributor Author

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

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

In general it looks good. However, we might need someone who was not involved to have a closer look.

Copy link
Contributor

@mvidner mvidner left a comment

Choose a reason for hiding this comment

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

Still not finished
but I realized screenshots would be helpful to review the UI changes. Do you have some at hand?

Copy link
Contributor

@mvidner mvidner left a comment

Choose a reason for hiding this comment

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

Went through the Rust part (JS is WIP)

Copy link
Contributor

@mvidner mvidner left a comment

Choose a reason for hiding this comment

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

So what's left is

  • fixing auth vs need_auth
  • the translator comment: connections vs devices

(newDevices can stay)

Are we updating *.changes now too?

@teclator teclator requested a review from mvidner April 29, 2024 15:35
This reverts commit c59cd17.
@imobachgs
Copy link
Contributor Author

@teclator @mvidner We are not updating the changes file in the architecture_2024 branch. We will write a big entry when we merge. I have reverted the change.

Copy link
Contributor

@mvidner mvidner left a comment

Choose a reason for hiding this comment

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

LGTM now, thanks!

@imobachgs imobachgs merged commit 141a3dd into architecture_2024 Apr 30, 2024
2 checks passed
@imobachgs imobachgs deleted the network_running_config branch April 30, 2024 08:43
@imobachgs imobachgs mentioned this pull request May 17, 2024
imobachgs added a commit that referenced this pull request May 17, 2024
Prepare for releasing Agama 8. It includes the following pull requests:

* #884
* #886
* #914
* #918
* #956
* #957
* #958
* #959
* #960
* #961
* #962
* #963
* #964
* #965
* #966
* #969
* #970
* #976
* #977
* #978
* #979
* #980
* #981
* #983
* #984
* #985
* #986
* #988
* #991
* #992
* #995
* #996
* #997
* #999
* #1003
* #1004
* #1006
* #1007
* #1008
* #1009
* #1010
* #1011
* #1012
* #1014
* #1015
* #1016
* #1017
* #1020
* #1022
* #1023
* #1024
* #1025
* #1027
* #1028
* #1029
* #1030
* #1031
* #1032
* #1033
* #1034
* #1035
* #1036
* #1038
* #1039
* #1041
* #1042
* #1043
* #1045
* #1046
* #1047
* #1048
* #1052
* #1054
* #1056
* #1057
* #1060
* #1061
* #1062
* #1063
* #1064
* #1066
* #1067
* #1068
* #1069
* #1071
* #1072
* #1073
* #1074
* #1075
* #1079
* #1080
* #1081
* #1082
* #1085
* #1086
* #1087
* #1088
* #1089
* #1090
* #1091
* #1092
* #1093
* #1094
* #1095
* #1096
* #1097
* #1098
* #1099
* #1100
* #1102
* #1103
* #1104
* #1105
* #1106
* #1109
* #1110
* #1111
* #1112
* #1114
* #1116
* #1117
* #1118
* #1119
* #1120
* #1121
* #1122
* #1123
* #1125
* #1126
* #1127
* #1128
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1135
* #1136
* #1138
* #1139
* #1140
* #1141
* #1142
* #1143
* #1144
* #1145
* #1146
* #1147
* #1148
* #1149
* #1151
* #1152
* #1153
* #1154
* #1155
* #1156
* #1157
* #1158
* #1160
* #1161
* #1162
* #1163
* #1164
* #1165
* #1166
* #1167
* #1168
* #1169
* #1170
* #1171
* #1172
* #1173
* #1174
* #1175
* #1177
* #1178
* #1180
* #1181
* #1182
* #1183
* #1184
* #1185
* #1187
* #1188
* #1189
* #1190
* #1191
* #1192
* #1193
* #1194
* #1195
* #1196
* #1198
* #1199
* #1200
* #1201
* #1203
* #1204
* #1205
* #1206
* #1207
* #1208
* #1209
* #1210
* #1211
* #1212
* #1213
* #1214
* #1215
* #1216
* #1217
* #1219
* #1220
* #1221
* #1222
* #1223
* #1224
* #1225
* #1226
* #1227
* #1229
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.

4 participants