Skip to content

Add DASD to HTTP API#3128

Merged
joseivanlopez merged 14 commits intoagama-project:masterfrom
joseivanlopez:dasd-http-api-v2
Feb 11, 2026
Merged

Add DASD to HTTP API#3128
joseivanlopez merged 14 commits intoagama-project:masterfrom
joseivanlopez:dasd-http-api-v2

Conversation

@joseivanlopez
Copy link
Copy Markdown
Contributor

Integrate DASD management in the new HTTP API.

@joseivanlopez joseivanlopez force-pushed the dasd-http-api-v2 branch 2 times, most recently from 7d33f94 to 393854f Compare February 10, 2026 11:25
@joseivanlopez joseivanlopez marked this pull request as ready for review February 10, 2026 12:26
/// s390 configuration.
pub struct Config {
/// Configuration of the DASD devices.
pub dasd: Option<RawConfig>,
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.

Well, I have to say I really dislike this. Config struct is important part of API and here is basically nothing, depending on what dbus service provides. Basically throwing away all rust guarantees and also making it quite hard create such config e.g. even for testing purpose and you always have to use json.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This was a decision already taken to directly pass the json from the dbus API. It is done so for storage, iscsi, dasd, etc.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The validation is done with the schema. Anyway, I think dasd, zfcp and iscsi could be totally moved to rust in the future. Storage would be more complex.

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.

sadly validation is still runtime done by checking schema against config, but not against code during compilation, which is what rust doing. So if someone breaks backward compatibility, the config will pass validation and then ruby code will fail.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, we are aware of that. Although the ruby code will fail too if the schema changes.

#[derive(Clone, Debug, Serialize, utoipa::ToSchema)]
#[serde(rename_all = "camelCase")]
pub struct SystemInfo {
pub dasd: Option<Value>,
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.

and similar here. Basically no info how it looks like or how to construct it. Again even in test it forces to use json text as it is not possible to use API without json.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes, same reason than above. For now we provide schema definitions for that data and we don't want to generate the very same json twice, at dbus level and at http level.

@coveralls
Copy link
Copy Markdown

coveralls commented Feb 11, 2026

Coverage Status

coverage: 73.899%. remained the same
when pulling f0055ca on joseivanlopez:dasd-http-api-v2
into 7b21bd9 on agama-project:master.

let progress_data = serde_json::from_str::<ProgressData>(args.progress)?;
self.progress
.cast(progress::message::SetProgress::new(progress_data.into()))?;
.call(progress::message::SetProgress::new(progress_data.into()))
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.

why it needs to be changed? I do not see reason in commit message. Basically original idea is that for progress report, you do not need to wait to be send and just send it and continue to delay if not needed.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I did it to guarantee that the signals arrive in order. Otherwise, ProgressFinished could come before than the last ProgressChanged.

@joseivanlopez joseivanlopez merged commit 0c60c8d into agama-project:master Feb 11, 2026
9 checks passed
bmwiedemann pushed a commit to bmwiedemann/openSUSE that referenced this pull request Feb 27, 2026
… 37 via SR 1334918

https://build.opensuse.org/request/show/1334918
by user IGonzalezSosa + anag_factory
- Add support for updateNvram bootloader key (jsc#PED-14224)
- Add support for AutoYaST key bootloader->update_nvram conversion

- Avoid automatic deactivation of unlisted DASD devices
  (gh#agama-project/agama#3181).

- Calculate bootloader after calling to probe or activate storage
  (related to bsc#1258134).

- Fix clearing bootloader cache to ensure that proper storage
  configuration is used (bsc#1258134)

- Fix reading the startup mode in iSCSI
  (gh#agama-project/agama#3161).

- Split storage writting config and final unmount action
  (bsc#1257791)

- Fix JSON of DASD format summary (gh#agama-project/agama#3128).
@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
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.

3 participants