Merge pull request #714 in YUNIONIO/onecloud from ~LIZEXI/onecloud:bugfix/lzx-container-validate-memcpu-failed to release/2.4.0

* commit '2b93c100d92b9a08f8bf8457c746ab38c9b68451':
  region: 修复创建容器时没有 parse vmem_size 单位导致创建失败
This commit is contained in:
邱剑
2018-12-11 11:35:46 +08:00
2 changed files with 17 additions and 3 deletions
+14
View File
@@ -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)
}
+3 -3
View File
@@ -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
}