osbuild2: change dracut.conf stage to match osbuild v30

The `org.osbuild.dracut.conf` stage was reworked before the osbuild v30
release. Update the composer implementation to match the expected
schema.

Related to https://github.com/osbuild/osbuild/pull/739.

Signed-off-by: Tomas Hozza <thozza@redhat.com>
This commit is contained in:
Tomas Hozza 2021-07-26 14:52:32 +02:00 committed by Tomas Hozza
parent b56642d6dd
commit 6cd626d462
3 changed files with 20 additions and 30 deletions

View file

@ -6,7 +6,8 @@ import (
)
type DracutConfStageOptions struct {
ConfigFiles map[string]DracutConfigFile `json:"configuration_files,omitempty"`
Filename string `json:"filename"`
Config DracutConfigFile `json:"config"`
}
func (DracutConfStageOptions) isStageOptions() {}

View file

@ -21,12 +21,15 @@ func TestDracutConfStage_MarshalJSON_Invalid(t *testing.T) {
name string
options DracutConfStageOptions
}{
{
name: "empty-options",
options: DracutConfStageOptions{},
},
{
name: "no-options-in-config",
options: DracutConfStageOptions{
ConfigFiles: map[string]DracutConfigFile{
"testing.conf": {},
},
Filename: "testing.conf",
Config: DracutConfigFile{},
},
},
}

View file

@ -147,39 +147,25 @@ func TestStage_UnmarshalJSON(t *testing.T) {
},
{
name: "dracut.conf",
fields: fields{
Type: "org.osbuild.dracut.conf",
Options: &DracutConfStageOptions{},
},
args: args{
data: []byte(`{"type":"org.osbuild.dracut.conf","options":{}}`),
},
},
{
name: "dracut.conf-data",
fields: fields{
Type: "org.osbuild.dracut.conf",
Options: &DracutConfStageOptions{
ConfigFiles: map[string]DracutConfigFile{
"sgdisk.conf": {
Install: []string{"sgdisk"},
},
"testing.conf": {
Compress: "xz",
AddModules: []string{"floppy"},
OmitModules: []string{"nouveau"},
AddDrivers: []string{"driver1"},
ForceDrivers: []string{"driver2"},
Filesystems: []string{"ext4"},
Install: []string{"file1"},
EarlyMicrocode: common.BoolToPtr(false),
Reproducible: common.BoolToPtr(false),
},
Filename: "testing.conf",
Config: DracutConfigFile{
Compress: "xz",
AddModules: []string{"floppy"},
OmitModules: []string{"nouveau"},
AddDrivers: []string{"driver1"},
ForceDrivers: []string{"driver2"},
Filesystems: []string{"ext4"},
Install: []string{"file1"},
EarlyMicrocode: common.BoolToPtr(false),
Reproducible: common.BoolToPtr(false),
},
},
},
args: args{
data: []byte(`{"type":"org.osbuild.dracut.conf","options":{"configuration_files":{"sgdisk.conf":{"install_items":["sgdisk"]},"testing.conf":{"compress":"xz","add_dracutmodules":["floppy"],"omit_dracutmodules":["nouveau"],"add_drivers":["driver1"],"force_drivers":["driver2"],"filesystems":["ext4"],"install_items":["file1"],"early_microcode":false,"reproducible":false}}}}`),
data: []byte(`{"type":"org.osbuild.dracut.conf","options":{"filename":"testing.conf","config":{"compress":"xz","add_dracutmodules":["floppy"],"omit_dracutmodules":["nouveau"],"add_drivers":["driver1"],"force_drivers":["driver2"],"filesystems":["ext4"],"install_items":["file1"],"early_microcode":false,"reproducible":false}}}`),
},
},
{