From d74fc4e3fa3e1061226d4a601b7cb2a2fee20799 Mon Sep 17 00:00:00 2001 From: Martin Sehnoutka Date: Fri, 5 Jun 2020 13:55:27 +0200 Subject: [PATCH] osbuild: introduce zipl stage zipl is a z initial program loader used with IBM Z systems. This stage is required to get support for the s390x architecture. --- internal/osbuild/zipl_stage.go | 25 +++++++++++++++++++++++++ internal/osbuild/zipl_stage_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 internal/osbuild/zipl_stage.go create mode 100644 internal/osbuild/zipl_stage_test.go diff --git a/internal/osbuild/zipl_stage.go b/internal/osbuild/zipl_stage.go new file mode 100644 index 000000000..6b2f52f6b --- /dev/null +++ b/internal/osbuild/zipl_stage.go @@ -0,0 +1,25 @@ +package osbuild + +// The ZiplStageOptions describe how to create zipl stage +// +// The only configuration option available is a boot timeout and it is optional +type ZiplStageOptions struct { + Timeout int `json:"timeout,omitempty"` +} + +func (ZiplStageOptions) isStageOptions() {} + +// NewZiplStageOptions creates a new ZiplStageOptions object with no timeout +func NewZiplStageOptions() *ZiplStageOptions { + return &ZiplStageOptions{ + Timeout: 0, + } +} + +// NewZiplStage creates a new zipl Stage object. +func NewZiplStage(options *ZiplStageOptions) *Stage { + return &Stage{ + Name: "org.osbuild.zipl", + Options: options, + } +} diff --git a/internal/osbuild/zipl_stage_test.go b/internal/osbuild/zipl_stage_test.go new file mode 100644 index 000000000..68bb0968a --- /dev/null +++ b/internal/osbuild/zipl_stage_test.go @@ -0,0 +1,24 @@ +package osbuild + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNewZiplStageOptions(t *testing.T) { + expectedOptions := &ZiplStageOptions{ + Timeout: 0, + } + actualOptions := NewZiplStageOptions() + assert.Equal(t, expectedOptions, actualOptions) +} + +func TestNewZiplStage(t *testing.T) { + expectedStage := &Stage{ + Name: "org.osbuild.zipl", + Options: &ZiplStageOptions{}, + } + actualStage := NewZiplStage(&ZiplStageOptions{}) + assert.Equal(t, expectedStage, actualStage) +}