diff --git a/config/interface.go b/config/interface.go index 9684cce..95c1669 100644 --- a/config/interface.go +++ b/config/interface.go @@ -12,6 +12,7 @@ type VendorConfigManager interface { Raw(name, value string, menuPath []string) Marshal() (string, error) + Unmarshal(cfgData string) (biosConfig *supermicroConfig, err error) } func NewVendorConfigManager(configFormat, vendorName string, vendorOptions map[string]string) (VendorConfigManager, error) { diff --git a/config/supermicro.go b/config/supermicro.go index 25fd02e..d802e73 100644 --- a/config/supermicro.go +++ b/config/supermicro.go @@ -114,6 +114,11 @@ func (cm *supermicroVendorConfig) Marshal() (string, error) { } } +func (cm *supermicroVendorConfig) Unmarshal(cfgData string) (biosConfig *supermicroConfig, err error) { + err = xml.Unmarshal([]byte(cfgData), biosConfig) + return +} + // Generic config options func (cm *supermicroVendorConfig) EnableTPM() {