diff --git a/pkg/compute/guestdrivers/container.go b/pkg/compute/guestdrivers/container.go index 431ce30468..1aececca16 100644 --- a/pkg/compute/guestdrivers/container.go +++ b/pkg/compute/guestdrivers/container.go @@ -26,6 +26,20 @@ func init() { models.RegisterGuestDriver(&driver) } +func (self *SContainerDriver) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { + vmemSize, vcpuCount, err := models.ValidateMemCpuData(data) + if err != nil { + return nil, err + } + if vmemSize > 0 { + data.Add(jsonutils.NewInt(int64(vmemSize)), "vmem_size") + } + if vcpuCount > 0 { + data.Add(jsonutils.NewInt(int64(vcpuCount)), "vcpu_count") + } + return data, nil +} + func (self *SContainerDriver) newUnsupportOperationError(option string) error { return httperrors.NewUnsupportOperationError("Container not support %s", option) } diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index c504245adf..352012aa0b 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -586,7 +586,7 @@ func (guest *SGuest) ValidateResizeDisk(disk *SDisk, storage *SStorage) error { return guest.GetDriver().ValidateResizeDisk(guest, disk, storage) } -func validateMemCpuData(data jsonutils.JSONObject) (int, int, error) { +func ValidateMemCpuData(data jsonutils.JSONObject) (int, int, error) { vmemSize := 0 vcpuCount := 0 var err error @@ -626,7 +626,7 @@ func validateMemCpuData(data jsonutils.JSONObject) (int, int, error) { } func (self *SGuest) ValidateUpdateData(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) { - vmemSize, vcpuCount, err := validateMemCpuData(data) + vmemSize, vcpuCount, err := ValidateMemCpuData(data) if err != nil { return nil, err } @@ -740,7 +740,7 @@ func (manager *SGuestManager) ValidateCreateData(ctx context.Context, userCred m data.Add(jsonutils.NewInt(int64(sku.MemorySizeMB)), "vmem_size") data.Add(jsonutils.NewInt(int64(sku.CpuCoreCount)), "vcpu_count") } else { - vmemSize, vcpuCount, err := validateMemCpuData(data) + vmemSize, vcpuCount, err := ValidateMemCpuData(data) if err != nil { return nil, err }