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

Storage adapt #1169

Merged
merged 18 commits into from Apr 30, 2024
Merged

Storage adapt #1169

merged 18 commits into from Apr 30, 2024

Conversation

jreidinger
Copy link
Member

@jreidinger jreidinger commented Apr 24, 2024

It is the first step in having HTTP based API for storage. As it is really big API we decided to split it into series of patches for easier review.

@coveralls
Copy link

coveralls commented Apr 24, 2024

Coverage Status

coverage: 69.442% (-0.7%) from 70.139%
when pulling a598fb5 on storage_adapt
into b43af77 on architecture_2024.

Copy link
Member

@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.

The approach looks good. Let's continue :-)

let client = StorageClient::new(dbus.clone()).await?;
let state = StorageState { client };
let router = Router::new()
.route("/devices/dirty", get(devices_dirty))
Copy link
Member

Choose a reason for hiding this comment

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

I wonder whether it might be useful to have a more generic endpoint which could have more "status-like" attributes (apart from dirty). But if there is no need...

Copy link
Member Author

Choose a reason for hiding this comment

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

well, more generic will be probably that proposal settings. Currently for devices I am aware only about this dirty flag that signal that re probe is needed. ( and staging can be no longer valid )

) -> Result<Device, ServiceError> {
Ok(Device {
device_info: self.build_device_info(&object.0).await?,
component: None,
Copy link
Member

Choose a reason for hiding this comment

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

Perhaps we could implement Default or, if not possible, have some kind of constructor.

Copy link
Member Author

Choose a reason for hiding this comment

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

I am thinking that in the end I will add to Device struct method try_from that will construct itself from that Object Manager struct. and here will be just Ok(object.into())

@jreidinger jreidinger marked this pull request as ready for review April 29, 2024 09:35
Copy link
Member

@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.

Just a few suggestions to reorganize the code a bit, but they can be postponed.

rust/agama-lib/src/dbus.rs Outdated Show resolved Hide resolved
rust/agama-lib/src/dbus.rs Show resolved Hide resolved
rust/agama-lib/src/error.rs Outdated Show resolved Hide resolved
rust/agama-lib/src/storage/client.rs Outdated Show resolved Hide resolved
rust/agama-lib/src/storage/client.rs Show resolved Hide resolved
rust/agama-lib/src/storage/client.rs Outdated Show resolved Hide resolved
/// Represents single volume
#[derive(Debug, Clone, Serialize, utoipa::ToSchema)]
#[serde(rename_all = "camelCase")]
pub struct Volume {
Copy link
Member

Choose a reason for hiding this comment

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

Not for this PR, but we should start thinking about moving these structs to some model module.

Copy link
Member Author

Choose a reason for hiding this comment

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

yeah, I already did it with device and its interfaces.

rust/agama-lib/src/storage/client.rs Outdated Show resolved Hide resolved
rust/agama-lib/src/storage/client.rs Outdated Show resolved Hide resolved
Copy link
Member

Choose a reason for hiding this comment

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

We should consider putting these structs (and others in the client module) into a unique module (storage::model or something like that).

jreidinger and others added 2 commits April 29, 2024 12:36
Co-authored-by: Imobach González Sosa <igonzalezsosa@suse.com>
rust/agama-lib/src/dbus.rs Outdated Show resolved Hide resolved
Co-authored-by: Imobach González Sosa <igonzalezsosa@suse.com>
@jreidinger jreidinger merged commit 259b625 into architecture_2024 Apr 30, 2024
2 checks passed
@jreidinger jreidinger deleted the storage_adapt branch April 30, 2024 09:35
@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.

None yet

3 participants