Skip to content

Commit 8256ba7

Browse files
authored
Merge pull request #17 from bmc-toolbox/vcm-unmarshal-0
Add Unmarshal(cfg string) to VendorConfigManager
2 parents 3db7cec + bac336d commit 8256ba7

File tree

8 files changed

+369
-44
lines changed

8 files changed

+369
-44
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@ jobs:
1818
- name: Run golangci-lint
1919
uses: golangci/golangci-lint-action@v3
2020
with:
21-
args: -v --config .golangci.yml --timeout=5m
21+
args: -v --config .golangci.yml --timeout=5m --out-format=colored-line-number
2222
version: latest

config/asrockrack.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,51 @@ func (cm *asrockrackVendorConfig) Marshal() (string, error) {
105105
}
106106
}
107107

108+
func (cm *asrockrackVendorConfig) Unmarshal(cfgData string) error {
109+
return xml.Unmarshal([]byte(cfgData), cm.ConfigData)
110+
}
111+
112+
func (cm *asrockrackVendorConfig) StandardConfig() (biosConfig map[string]string, err error) {
113+
return biosConfig, err
114+
}
115+
108116
// Generic config options
109117

118+
func (cm *asrockrackVendorConfig) BootOrder(mode string) error {
119+
// Unimplemented
120+
return nil
121+
}
122+
123+
func (cm *asrockrackVendorConfig) BootMode(mode string) error {
124+
// Unimplemented
125+
return nil
126+
}
127+
128+
func (cm *asrockrackVendorConfig) IntelSGX(mode string) error {
129+
// Unimplemented
130+
return nil
131+
}
132+
133+
func (cm *asrockrackVendorConfig) SecureBoot(enable bool) error {
134+
// Unimplemented
135+
return nil
136+
}
137+
138+
func (cm *asrockrackVendorConfig) TPM(enable bool) error {
139+
// Unimplemented
140+
return nil
141+
}
142+
143+
func (cm *asrockrackVendorConfig) SMT(enable bool) error {
144+
// Unimplemented
145+
return nil
146+
}
147+
148+
func (cm *asrockrackVendorConfig) SRIOV(enable bool) error {
149+
// Unimplemented
150+
return nil
151+
}
152+
110153
func (cm *asrockrackVendorConfig) EnableTPM() {
111154
// Unimplemented
112155
}

config/dell.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,51 @@ func (cm *dellVendorConfig) Marshal() (string, error) {
129129
}
130130
}
131131

132+
func (cm *dellVendorConfig) Unmarshal(cfgData string) error {
133+
return xml.Unmarshal([]byte(cfgData), cm.ConfigData)
134+
}
135+
136+
func (cm *dellVendorConfig) StandardConfig() (biosConfig map[string]string, err error) {
137+
return biosConfig, err
138+
}
139+
132140
// Generic config options
133141

142+
func (cm *dellVendorConfig) BootOrder(mode string) error {
143+
// Unimplemented
144+
return nil
145+
}
146+
147+
func (cm *dellVendorConfig) BootMode(mode string) error {
148+
// Unimplemented
149+
return nil
150+
}
151+
152+
func (cm *dellVendorConfig) IntelSGX(mode string) error {
153+
// Unimplemented
154+
return nil
155+
}
156+
157+
func (cm *dellVendorConfig) SecureBoot(enable bool) error {
158+
// Unimplemented
159+
return nil
160+
}
161+
162+
func (cm *dellVendorConfig) TPM(enable bool) error {
163+
// Unimplemented
164+
return nil
165+
}
166+
167+
func (cm *dellVendorConfig) SMT(enable bool) error {
168+
// Unimplemented
169+
return nil
170+
}
171+
172+
func (cm *dellVendorConfig) SRIOV(enable bool) error {
173+
// Unimplemented
174+
return nil
175+
}
176+
134177
func (cm *dellVendorConfig) EnableTPM() {
135178
cm.Raw("EnableTPM", "Enabled", []string{"BIOS.Setup.1-1"})
136179
}

config/errors.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,27 @@ import (
77

88
var errUnknownConfigFormat = errors.New("unknown config format")
99
var errUnknownVendor = errors.New("unknown/unsupported vendor")
10+
var errUnknownSettingType = errors.New("unknown setting type")
11+
12+
var errInvalidBootModeOption = errors.New("invalid BootMode option <LEGACY|UEFI|DUAL>")
13+
var errInvalidSGXOption = errors.New("invalid SGX option <Enabled|Disabled|Software Controlled>")
1014

1115
func UnknownConfigFormatError(format string) error {
1216
return fmt.Errorf("unknown config format %w : %s", errUnknownConfigFormat, format)
1317
}
1418

19+
func UnknownSettingType(t string) error {
20+
return fmt.Errorf("unknown setting type %w : %s", errUnknownSettingType, t)
21+
}
22+
1523
func UnknownVendorError(vendorName string) error {
1624
return fmt.Errorf("unknown/unsupported vendor %w : %s", errUnknownVendor, vendorName)
1725
}
26+
27+
func InvalidBootModeOption(mode string) error {
28+
return fmt.Errorf("%w : %s", errInvalidBootModeOption, mode)
29+
}
30+
31+
func InvalidSGXOption(mode string) error {
32+
return fmt.Errorf("%w : %s", errInvalidSGXOption, mode)
33+
}

config/interface.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,18 @@ import (
77
)
88

99
type VendorConfigManager interface {
10-
EnableTPM()
11-
EnableSRIOV()
12-
1310
Raw(name, value string, menuPath []string)
1411
Marshal() (string, error)
12+
Unmarshal(cfgData string) (err error)
13+
StandardConfig() (biosConfig map[string]string, err error)
14+
15+
BootMode(mode string) error
16+
BootOrder(mode string) error
17+
IntelSGX(mode string) error
18+
SecureBoot(enable bool) error
19+
TPM(enable bool) error
20+
SMT(enable bool) error
21+
SRIOV(enable bool) error
1522
}
1623

1724
func NewVendorConfigManager(configFormat, vendorName string, vendorOptions map[string]string) (VendorConfigManager, error) {

0 commit comments

Comments
 (0)