From 966743e7bc2522ca0258f16446ac858ed64aadc2 Mon Sep 17 00:00:00 2001 From: Maggie Lou Date: Tue, 17 Dec 2024 11:24:46 -0600 Subject: [PATCH] Support huge pages in machine configuration --- client/models/machine_configuration.go | 53 ++++++++++++++++++++++++++ client/swagger.yaml | 6 +++ 2 files changed, 59 insertions(+) diff --git a/client/models/machine_configuration.go b/client/models/machine_configuration.go index 8cde7bf0..6cb6241c 100644 --- a/client/models/machine_configuration.go +++ b/client/models/machine_configuration.go @@ -19,6 +19,8 @@ package models // Editing this file might prove futile when you re-run the swagger generate command import ( + "encoding/json" + strfmt "github.com/go-openapi/strfmt" "github.com/go-openapi/errors" @@ -33,6 +35,10 @@ type MachineConfiguration struct { // cpu template CPUTemplate CPUTemplate `json:"cpu_template,omitempty"` + // Which huge pages configuration (if any) should be used to back guest memory. + // Enum: [None 2M] + HugePages string `json:"huge_pages,omitempty"` + // Memory size of VM // Required: true MemSizeMib *int64 `json:"mem_size_mib"` @@ -58,6 +64,10 @@ func (m *MachineConfiguration) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := m.validateHugePages(formats); err != nil { + res = append(res, err) + } + if err := m.validateMemSizeMib(formats); err != nil { res = append(res, err) } @@ -88,6 +98,49 @@ func (m *MachineConfiguration) validateCPUTemplate(formats strfmt.Registry) erro return nil } +var machineConfigurationTypeHugePagesPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["None","2M"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + machineConfigurationTypeHugePagesPropEnum = append(machineConfigurationTypeHugePagesPropEnum, v) + } +} + +const ( + + // MachineConfigurationHugePagesNone captures enum value "None" + MachineConfigurationHugePagesNone string = "None" + + // MachineConfigurationHugePagesNr2M captures enum value "2M" + MachineConfigurationHugePagesNr2M string = "2M" +) + +// prop value enum +func (m *MachineConfiguration) validateHugePagesEnum(path, location string, value string) error { + if err := validate.Enum(path, location, value, machineConfigurationTypeHugePagesPropEnum); err != nil { + return err + } + return nil +} + +func (m *MachineConfiguration) validateHugePages(formats strfmt.Registry) error { + + if swag.IsZero(m.HugePages) { // not required + return nil + } + + // value enum + if err := m.validateHugePagesEnum("huge_pages", "body", m.HugePages); err != nil { + return err + } + + return nil +} + func (m *MachineConfiguration) validateMemSizeMib(formats strfmt.Registry) error { if err := validate.Required("mem_size_mib", "body", m.MemSizeMib); err != nil { diff --git a/client/swagger.yaml b/client/swagger.yaml index df3d1d6b..c395aef5 100644 --- a/client/swagger.yaml +++ b/client/swagger.yaml @@ -1026,6 +1026,12 @@ definitions: minimum: 1 maximum: 32 description: Number of vCPUs (either 1 or an even number) + huge_pages: + type: string + enum: + - None + - 2M + description: Which huge pages configuration (if any) should be used to back guest memory. MemoryBackend: type: object