mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
Automatic merge from release/2.5.0 -> release/2.6.0
* commit 'a291bd687813f494073e480f0c19cc63058c63fa': 跟随主机创建的磁盘默认都是auto delete
This commit is contained in:
@@ -1156,7 +1156,7 @@ func (self *SGuest) PerformCreatedisk(ctx context.Context, userCred mcclient.Tok
|
||||
lockman.LockObject(ctx, host)
|
||||
defer lockman.ReleaseObject(ctx, host)
|
||||
|
||||
err = self.CreateDisksOnHost(ctx, userCred, host, disksConf, pendingUsage, false)
|
||||
err = self.CreateDisksOnHost(ctx, userCred, host, disksConf, pendingUsage, false, false)
|
||||
if err != nil {
|
||||
QuotaManager.CancelPendingUsage(ctx, userCred, self.ProjectId, nil, pendingUsage)
|
||||
logclient.AddActionLogWithContext(ctx, self, logclient.ACT_CREATE, err.Error(), userCred, false)
|
||||
@@ -1779,7 +1779,7 @@ func (self *SGuest) PerformChangeConfig(ctx context.Context, userCred mcclient.T
|
||||
}
|
||||
|
||||
if newDisks.Length() > 0 {
|
||||
err := self.CreateDisksOnHost(ctx, userCred, host, newDisks, pendingUsage, false)
|
||||
err := self.CreateDisksOnHost(ctx, userCred, host, newDisks, pendingUsage, false, false)
|
||||
if err != nil {
|
||||
QuotaManager.CancelPendingUsage(ctx, userCred, self.ProjectId, nil, pendingUsage)
|
||||
return nil, httperrors.NewBadRequestError("Create disk on host error: %s", err)
|
||||
|
||||
@@ -2601,14 +2601,14 @@ func (self *SGuest) attach2RandomNetwork(ctx context.Context, userCred mcclient.
|
||||
}
|
||||
|
||||
func (self *SGuest) CreateDisksOnHost(ctx context.Context, userCred mcclient.TokenCredential, host *SHost,
|
||||
data *jsonutils.JSONDict, pendingUsage quotas.IQuota, inheritBilling bool) error {
|
||||
data *jsonutils.JSONDict, pendingUsage quotas.IQuota, inheritBilling bool, isWithServerCreate bool) error {
|
||||
diskJsonArray := jsonutils.GetArrayOfPrefix(data, "disk")
|
||||
for idx := 0; idx < len(diskJsonArray); idx += 1 { // .Contains(fmt.Sprintf("disk.%d", idx)); idx += 1 {
|
||||
diskConfig, err := parseDiskInfo(ctx, userCred, diskJsonArray[idx])
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
disk, err := self.createDiskOnHost(ctx, userCred, host, diskConfig, pendingUsage, inheritBilling)
|
||||
disk, err := self.createDiskOnHost(ctx, userCred, host, diskConfig, pendingUsage, inheritBilling, isWithServerCreate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -2621,7 +2621,7 @@ func (self *SGuest) CreateDisksOnHost(ctx context.Context, userCred mcclient.Tok
|
||||
}
|
||||
|
||||
func (self *SGuest) createDiskOnStorage(ctx context.Context, userCred mcclient.TokenCredential, storage *SStorage,
|
||||
diskConfig *SDiskConfig, pendingUsage quotas.IQuota, inheritBilling bool) (*SDisk, error) {
|
||||
diskConfig *SDiskConfig, pendingUsage quotas.IQuota, inheritBilling bool, isWithServerCreate bool) (*SDisk, error) {
|
||||
lockman.LockObject(ctx, storage)
|
||||
defer lockman.ReleaseObject(ctx, storage)
|
||||
|
||||
@@ -2638,7 +2638,7 @@ func (self *SGuest) createDiskOnStorage(ctx context.Context, userCred mcclient.T
|
||||
}
|
||||
|
||||
autoDelete := false
|
||||
if storage.IsLocal() || billingType == BILLING_TYPE_PREPAID {
|
||||
if storage.IsLocal() || billingType == BILLING_TYPE_PREPAID || isWithServerCreate {
|
||||
autoDelete = true
|
||||
}
|
||||
disk, err := storage.createDisk(diskName, diskConfig, userCred, self.ProjectId, autoDelete, self.IsSystem,
|
||||
@@ -2656,12 +2656,12 @@ func (self *SGuest) createDiskOnStorage(ctx context.Context, userCred mcclient.T
|
||||
}
|
||||
|
||||
func (self *SGuest) createDiskOnHost(ctx context.Context, userCred mcclient.TokenCredential, host *SHost,
|
||||
diskConfig *SDiskConfig, pendingUsage quotas.IQuota, inheritBilling bool) (*SDisk, error) {
|
||||
diskConfig *SDiskConfig, pendingUsage quotas.IQuota, inheritBilling bool, isWithServerCreate bool) (*SDisk, error) {
|
||||
storage := self.GetDriver().ChooseHostStorage(host, diskConfig.Backend)
|
||||
if storage == nil {
|
||||
return nil, fmt.Errorf("No storage on %s to create disk for %s", host.GetName(), diskConfig.Backend)
|
||||
}
|
||||
disk, err := self.createDiskOnStorage(ctx, userCred, storage, diskConfig, pendingUsage, inheritBilling)
|
||||
disk, err := self.createDiskOnStorage(ctx, userCred, storage, diskConfig, pendingUsage, inheritBilling, isWithServerCreate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ func (self *GuestBatchCreateTask) allocateGuestOnHost(ctx context.Context, guest
|
||||
}
|
||||
|
||||
guest.GetDriver().PrepareDiskRaidConfig(host, self.Params)
|
||||
err = guest.CreateDisksOnHost(ctx, self.UserCred, host, self.Params, &pendingUsage, true)
|
||||
err = guest.CreateDisksOnHost(ctx, self.UserCred, host, self.Params, &pendingUsage, true, true)
|
||||
self.SetPendingUsage(&pendingUsage)
|
||||
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user