From ea0b5e86610a255694ee012fea39496a1cf06489 Mon Sep 17 00:00:00 2001 From: Achilleas Koutsou Date: Tue, 3 Jun 2025 17:12:26 +0200 Subject: [PATCH] cloudapi: make fs_type required for filesystems and logical volumes While technically this is a backwards incompatible API change, the core blueprint schema didn't allow for empty or undefined fs_type [1,2], so the general behaviour hasn't changed, we're just catching it early now. [1] https://github.com/osbuild/blueprint/blob/de18902e3fb791deff0ed56122cd223c430f82a3/pkg/blueprint/disk_customizations.go#L624-L627 [2] https://github.com/osbuild/blueprint/blob/de18902e3fb791deff0ed56122cd223c430f82a3/pkg/blueprint/disk_customizations.go#L677-L680 --- internal/cloudapi/v2/compose.go | 4 +- internal/cloudapi/v2/compose_test.go | 13 +- internal/cloudapi/v2/openapi.v2.gen.go | 266 ++++++++++++------------- internal/cloudapi/v2/openapi.v2.yml | 4 + 4 files changed, 146 insertions(+), 141 deletions(-) diff --git a/internal/cloudapi/v2/compose.go b/internal/cloudapi/v2/compose.go index 9db68862d..e3b9a7632 100644 --- a/internal/cloudapi/v2/compose.go +++ b/internal/cloudapi/v2/compose.go @@ -1367,7 +1367,7 @@ func convertDiskCustomizations(disk *Disk) (*blueprint.DiskCustomization, error) FilesystemTypedCustomization: blueprint.FilesystemTypedCustomization{ Mountpoint: common.DerefOrDefault(fs.Mountpoint), Label: common.DerefOrDefault(fs.Label), - FSType: string(common.DerefOrDefault(fs.FsType)), + FSType: string(fs.FsType), }, } case string(Btrfs): @@ -1422,7 +1422,7 @@ func convertDiskCustomizations(disk *Disk) (*blueprint.DiskCustomization, error) FilesystemTypedCustomization: blueprint.FilesystemTypedCustomization{ Mountpoint: common.DerefOrDefault(lv.Mountpoint), Label: common.DerefOrDefault(lv.Label), - FSType: string(common.DerefOrDefault(lv.FsType)), + FSType: string(lv.FsType), }, } bpPartition.LogicalVolumes = append(bpPartition.LogicalVolumes, bpLV) diff --git a/internal/cloudapi/v2/compose_test.go b/internal/cloudapi/v2/compose_test.go index d320dacf8..e0fed7abb 100644 --- a/internal/cloudapi/v2/compose_test.go +++ b/internal/cloudapi/v2/compose_test.go @@ -227,6 +227,7 @@ func GetTestBlueprint() blueprint.Blueprint { FilesystemTypedCustomization: blueprint.FilesystemTypedCustomization{ Mountpoint: "/home", Label: "home", + FSType: "ext4", }, }, }, @@ -272,7 +273,7 @@ func TestGetBlueprintFromCustomizations(t *testing.T) { FilesystemTyped{ Type: common.ToPtr(Plain), Minsize: nil, - FsType: common.ToPtr(FilesystemTypedFsTypeXfs), + FsType: FilesystemTypedFsTypeXfs, Label: common.ToPtr("data"), Mountpoint: common.ToPtr("/data"), }, @@ -310,14 +311,14 @@ func TestGetBlueprintFromCustomizations(t *testing.T) { PartType: common.ToPtr("E6D6D379-F507-44C2-A23C-238F2A3DF928"), LogicalVolumes: []LogicalVolume{ { - FsType: common.ToPtr(LogicalVolumeFsTypeExt4), + FsType: LogicalVolumeFsTypeExt4, Label: nil, Minsize: nil, Mountpoint: common.ToPtr("/"), Name: common.ToPtr("rootlv"), }, { - FsType: nil, + FsType: LogicalVolumeFsTypeExt4, Label: common.ToPtr("home"), Minsize: &lvSize, Mountpoint: common.ToPtr("/home"), @@ -527,7 +528,7 @@ func TestGetBlueprintFromCompose(t *testing.T) { FilesystemTyped{ Type: common.ToPtr(Plain), Minsize: nil, - FsType: common.ToPtr(FilesystemTypedFsTypeXfs), + FsType: FilesystemTypedFsTypeXfs, Label: common.ToPtr("data"), Mountpoint: common.ToPtr("/data"), }, @@ -565,14 +566,14 @@ func TestGetBlueprintFromCompose(t *testing.T) { PartType: common.ToPtr("E6D6D379-F507-44C2-A23C-238F2A3DF928"), LogicalVolumes: []LogicalVolume{ { - FsType: common.ToPtr(LogicalVolumeFsTypeExt4), + FsType: LogicalVolumeFsTypeExt4, Label: nil, Minsize: nil, Mountpoint: common.ToPtr("/"), Name: common.ToPtr("rootlv"), }, { - FsType: nil, + FsType: LogicalVolumeFsTypeExt4, Label: common.ToPtr("home"), Minsize: &lvSize, Mountpoint: common.ToPtr("/home"), diff --git a/internal/cloudapi/v2/openapi.v2.gen.go b/internal/cloudapi/v2/openapi.v2.gen.go index 6d1b4a9d3..e86860314 100644 --- a/internal/cloudapi/v2/openapi.v2.gen.go +++ b/internal/cloudapi/v2/openapi.v2.gen.go @@ -875,8 +875,8 @@ type Filesystem struct { // FilesystemTyped defines model for FilesystemTyped. type FilesystemTyped struct { // FsType The filesystem type. Swap partitions must have an empty mountpoint. - FsType *FilesystemTypedFsType `json:"fs_type,omitempty"` - Label *string `json:"label,omitempty"` + FsType FilesystemTypedFsType `json:"fs_type"` + Label *string `json:"label,omitempty"` // Minsize size with data units Minsize *Minsize `json:"minsize,omitempty"` @@ -1124,8 +1124,8 @@ type Locale struct { // LogicalVolume defines model for LogicalVolume. type LogicalVolume struct { // FsType The filesystem type for the logical volume. Swap LVs must have an empty mountpoint. - FsType *LogicalVolumeFsType `json:"fs_type,omitempty"` - Label *string `json:"label,omitempty"` + FsType LogicalVolumeFsType `json:"fs_type"` + Label *string `json:"label,omitempty"` // Minsize size with data units Minsize *Minsize `json:"minsize,omitempty"` @@ -3129,135 +3129,135 @@ var swaggerSpec = []string{ "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", - "AAA=", + "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", + "oP8l/AAA", } // GetSwagger returns the content of the embedded swagger specification file diff --git a/internal/cloudapi/v2/openapi.v2.yml b/internal/cloudapi/v2/openapi.v2.yml index 38f0af4d2..d6c365d81 100644 --- a/internal/cloudapi/v2/openapi.v2.yml +++ b/internal/cloudapi/v2/openapi.v2.yml @@ -2683,6 +2683,8 @@ components: - $ref: '#/components/schemas/VolumeGroup' FilesystemTyped: type: object + required: + - fs_type properties: type: type: string @@ -2767,6 +2769,8 @@ components: $ref: '#/components/schemas/LogicalVolume' LogicalVolume: type: object + required: + - fs_type properties: name: type: string