冲突解决

This commit is contained in:
屈轩
2019-03-11 18:19:53 +08:00
3 changed files with 10 additions and 10 deletions
+3 -3
View File
@@ -1161,7 +1161,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)
@@ -1805,7 +1805,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)
@@ -2838,7 +2838,7 @@ func (self *SGuest) importDisks(ctx context.Context, userCred mcclient.TokenCred
return httperrors.NewInputParameterError("Empty import disks")
}
for _, disk := range disks {
disk, err := self.createDiskOnHost(ctx, userCred, self.GetHost(), disk.ToDiskConfig(), nil, true)
disk, err := self.createDiskOnHost(ctx, userCred, self.GetHost(), disk.ToDiskConfig(), nil, true, true)
if err != nil {
return err
}
+6 -6
View File
@@ -2606,14 +2606,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
}
@@ -2626,7 +2626,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)
@@ -2643,7 +2643,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,
@@ -2661,12 +2661,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
}
+1 -1
View File
@@ -72,7 +72,7 @@ func (self *GuestBatchCreateTask) allocateGuestOnHost(ctx context.Context, guest
}
guest.GetDriver().PrepareDiskRaidConfig(self.UserCred, 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 {