resolve merge conflict

This commit is contained in:
Qiu Jian
2019-05-25 18:47:52 +08:00
parent d8e492ee5a
commit 7be87c4bcc
7 changed files with 38 additions and 35 deletions
+1 -1
View File
@@ -771,7 +771,7 @@ func syncRegionSnapshotPolicies(ctx context.Context, userCred mcclient.TokenCred
}
result := SnapshotPolicyManager.SyncSnapshotPolicies(
ctx, userCred, provider, localRegion, snapshotPolicies, provider.ProjectId)
ctx, userCred, provider, localRegion, snapshotPolicies, provider.GetOwnerId())
syncResults.Add(SnapshotPolicyManager, result)
msg := result.Result()
log.Infof("SyncSnapshotPolicies for region %s result: %s", localRegion.Name, msg)
+3 -3
View File
@@ -757,7 +757,7 @@ func (self *SDisk) PerformApplySnapshotPolicy(
ctx context.Context, userCred mcclient.TokenCredential,
query jsonutils.JSONObject, data jsonutils.JSONObject,
) (jsonutils.JSONObject, error) {
spv := validators.NewModelIdOrNameValidator("snapshotpolicy", "snapshotpolicy", userCred.GetProjectId())
spv := validators.NewModelIdOrNameValidator("snapshotpolicy", "snapshotpolicy", userCred)
if err := spv.Validate(data.(*jsonutils.JSONDict)); err != nil {
return nil, err
}
@@ -1198,7 +1198,7 @@ func (self *SDisk) syncWithCloudDisk(ctx context.Context, userCred mcclient.Toke
extPolicyId := extDisk.GetExtSnapshotPolicyId()
if len(extPolicyId) > 0 {
isp, _ := SnapshotPolicyManager.FetchByExternalId(extPolicyId)
isp, _ := db.FetchByExternalId(SnapshotPolicyManager, extPolicyId)
if isp != nil {
self.SnapshotPolicyId = isp.GetId()
}
@@ -1253,7 +1253,7 @@ func (manager *SDiskManager) newFromCloudDisk(ctx context.Context, userCred mccl
extPolicyId := extDisk.GetExtSnapshotPolicyId()
if len(extPolicyId) > 0 {
isp, _ := SnapshotPolicyManager.FetchByExternalId(extPolicyId)
isp, _ := db.FetchByExternalId(SnapshotPolicyManager, extPolicyId)
if isp != nil {
disk.SnapshotPolicyId = isp.GetId()
}
+21 -21
View File
@@ -40,6 +40,8 @@ type SSnapshotPolicyManager struct {
type SSnapshotPolicy struct {
db.SVirtualResourceBase
db.SExternalizedResourceBase
SManagedResourceBase
SCloudregionResourceBase
@@ -63,26 +65,26 @@ func init() {
}
}
func (manager *SSnapshotPolicyManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerProjId string, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
func (manager *SSnapshotPolicyManager) ValidateCreateData(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
input := &compute.SSnapshotPolicyCreateInput{}
err := data.Unmarshal(input)
if err != nil {
return nil, httperrors.NewInputParameterError("Unmarshal input failed %s", err)
}
input.ProjectId = ownerProjId
input.ProjectId = ownerId.GetProjectId()
err = db.NewNameValidator(manager, ownerProjId, input.Name)
err = db.NewNameValidator(manager, ownerId, input.Name)
if err != nil {
return nil, err
}
managerIdV := validators.NewModelIdOrNameValidator("manager", "cloudprovider", "")
managerIdV := validators.NewModelIdOrNameValidator("manager", "cloudprovider", nil)
if err := managerIdV.Validate(data); err != nil {
return nil, err
}
input.ManagerId, _ = data.GetString("manager_id")
cloudregionV := validators.NewModelIdOrNameValidator("cloudregion", "cloudregion", ownerProjId)
cloudregionV := validators.NewModelIdOrNameValidator("cloudregion", "cloudregion", ownerId)
err = cloudregionV.Validate(data)
if err != nil {
return nil, err
@@ -98,11 +100,11 @@ func (manager *SSnapshotPolicyManager) ValidateCreateData(ctx context.Context, u
return data, nil
}
func (self *SSnapshotPolicy) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerProjId string, query jsonutils.JSONObject, data jsonutils.JSONObject) {
self.StartCreateSnapshotPolicy(ctx, userCred, ownerProjId, query, data)
func (self *SSnapshotPolicy) PostCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) {
self.StartCreateSnapshotPolicy(ctx, userCred, ownerId, query, data)
}
func (self *SSnapshotPolicy) StartCreateSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, ownerProjId string, query jsonutils.JSONObject, data jsonutils.JSONObject) error {
func (self *SSnapshotPolicy) StartCreateSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) error {
if task, err := taskman.TaskManager.NewTask(ctx, "SnapshotPolicyCreateTask", self, userCred, nil, "", "", nil); err != nil {
return err
} else {
@@ -180,11 +182,9 @@ func (self *SSnapshotPolicy) GenerateCreateSpParams() (*cloudprovider.SnapshotPo
}, nil
}
func (manager *SSnapshotPolicyManager) SyncSnapshotPolicies(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, region *SCloudregion, snapshots []cloudprovider.ICloudSnapshotPolicy, projectId string) compare.SyncResult {
syncOwnerProjId := projectId
lockman.LockClass(ctx, manager, syncOwnerProjId)
defer lockman.ReleaseClass(ctx, manager, syncOwnerProjId)
func (manager *SSnapshotPolicyManager) SyncSnapshotPolicies(ctx context.Context, userCred mcclient.TokenCredential, provider *SCloudprovider, region *SCloudregion, snapshots []cloudprovider.ICloudSnapshotPolicy, syncOwnerId mcclient.IIdentityProvider) compare.SyncResult {
lockman.LockClass(ctx, manager, db.GetLockClassKey(manager, syncOwnerId))
defer lockman.ReleaseClass(ctx, manager, db.GetLockClassKey(manager, syncOwnerId))
syncResult := compare.SyncResult{}
dbSnapshotPolicies, err := manager.getProviderSnapshotPolicies(region, provider)
if err != nil {
@@ -210,7 +210,7 @@ func (manager *SSnapshotPolicyManager) SyncSnapshotPolicies(ctx context.Context,
}
}
for i := 0; i < len(commondb); i += 1 {
err = commondb[i].SyncWithCloudSnapshotPolicy(ctx, userCred, commonext[i], projectId, region)
err = commondb[i].SyncWithCloudSnapshotPolicy(ctx, userCred, commonext[i], syncOwnerId, region)
if err != nil {
syncResult.UpdateError(err)
} else {
@@ -219,7 +219,7 @@ func (manager *SSnapshotPolicyManager) SyncSnapshotPolicies(ctx context.Context,
}
}
for i := 0; i < len(added); i += 1 {
local, err := manager.newFromCloudSnapshotPolicy(ctx, userCred, added[i], region, syncOwnerProjId, provider)
local, err := manager.newFromCloudSnapshotPolicy(ctx, userCred, added[i], region, syncOwnerId, provider)
if err != nil {
syncResult.AddError(err)
} else {
@@ -260,7 +260,7 @@ func (self *SSnapshotPolicy) RealDelete(ctx context.Context, userCred mcclient.T
return db.DeleteModel(ctx, userCred, self)
}
func (self *SSnapshotPolicy) SyncWithCloudSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudSnapshotPolicy, projectId string, region *SCloudregion) error {
func (self *SSnapshotPolicy) SyncWithCloudSnapshotPolicy(ctx context.Context, userCred mcclient.TokenCredential, ext cloudprovider.ICloudSnapshotPolicy, ownerId mcclient.IIdentityProvider, region *SCloudregion) error {
diff, err := db.UpdateWithLock(ctx, self, func() error {
self.Name = ext.GetName()
self.Status = ext.GetStatus()
@@ -280,19 +280,19 @@ func (self *SSnapshotPolicy) SyncWithCloudSnapshotPolicy(ctx context.Context, us
return nil
})
db.OpsLog.LogSyncUpdate(self, diff, userCred)
SyncCloudProject(userCred, self, projectId, ext, self.ManagerId)
SyncCloudProject(userCred, self, ownerId, ext, self.ManagerId)
return err
}
func (manager *SSnapshotPolicyManager) newFromCloudSnapshotPolicy(
ctx context.Context, userCred mcclient.TokenCredential,
ext cloudprovider.ICloudSnapshotPolicy, region *SCloudregion,
projectId string, provider *SCloudprovider,
syncOwnerId mcclient.IIdentityProvider, provider *SCloudprovider,
) (*SSnapshotPolicy, error) {
snapshotPolicy := SSnapshotPolicy{}
snapshotPolicy.SetModelManager(manager)
snapshotPolicy.SetModelManager(manager, &snapshotPolicy)
newName, err := db.GenerateName(manager, projectId, ext.GetName())
newName, err := db.GenerateName(manager, syncOwnerId, ext.GetName())
if err != nil {
return nil, err
}
@@ -319,7 +319,7 @@ func (manager *SSnapshotPolicyManager) newFromCloudSnapshotPolicy(
return nil, err
}
SyncCloudProject(userCred, &snapshotPolicy, projectId, ext, snapshotPolicy.ManagerId)
SyncCloudProject(userCred, &snapshotPolicy, syncOwnerId, ext, snapshotPolicy.ManagerId)
db.OpsLog.LogEvent(&snapshotPolicy, db.ACT_CREATE, snapshotPolicy.GetShortDesc(ctx), userCred)
return &snapshotPolicy, nil
}
+1 -1
View File
@@ -848,7 +848,7 @@ func (self *SManagedVirtualizationRegionDriver) RequestCreateSnapshotPolicy(ctx
if err != nil {
return nil, err
}
sp.SetExternalId(userCred, policyId)
err = db.SetExternalId(sp, userCred, policyId)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -51,7 +51,7 @@ func (self *SOpenStackRegionDriver) ValidateCreateLoadbalancerCertificateData(ct
}
func (self *SOpenStackRegionDriver) ValidateCreateEipData(ctx context.Context, userCred mcclient.TokenCredential, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error) {
networkV := validators.NewModelIdOrNameValidator("network", "network", "")
networkV := validators.NewModelIdOrNameValidator("network", "network", nil)
err := networkV.Validate(data)
if err != nil {
return nil, err
@@ -70,11 +70,13 @@ type SnapshotPolicyApplyTask struct {
func (self *SnapshotPolicyApplyTask) taskFail(ctx context.Context, sp *models.SSnapshotPolicy, reason string) {
stringIds, _ := getDiskIds(self)
disks := make([]models.SDisk, 0)
models.DiskManager.Query().In("id", stringIds).All(&disks)
for i := 0; i < len(disks); i++ {
disks[i].SetModelManager(models.DiskManager)
db.OpsLog.LogEvent(&disks[i], db.ACT_APPLY_SNAPSHOT_POLICY_FAILED, reason, self.UserCred)
logclient.AddActionLogWithStartable(self, &disks[i], logclient.ACT_APPLY_SNAPSHOT_POLICY, reason, self.UserCred, false)
q := models.DiskManager.Query().In("id", stringIds)
err := db.FetchModelObjects(models.DiskManager, q, &disks)
if err == nil {
for i := 0; i < len(disks); i++ {
db.OpsLog.LogEvent(&disks[i], db.ACT_APPLY_SNAPSHOT_POLICY_FAILED, reason, self.UserCred)
logclient.AddActionLogWithStartable(self, &disks[i], logclient.ACT_APPLY_SNAPSHOT_POLICY, reason, self.UserCred, false)
}
}
self.SetStageFailed(ctx, reason)
}
@@ -129,13 +131,13 @@ func (self *SnapshotPolicyApplyTask) OnInit(ctx context.Context, obj db.IStandal
func (self *SnapshotPolicyApplyTask) OnSnapshotPolicyApply(ctx context.Context, sp *models.SSnapshotPolicy, data jsonutils.JSONObject) {
stringIds, _ := getDiskIds(self)
disks := make([]models.SDisk, 0)
err := models.DiskManager.Query().In("id", stringIds).All(&disks)
q := models.DiskManager.Query().In("id", stringIds)
err := db.FetchModelObjects(models.DiskManager, q, &disks)
if err != nil {
self.taskFail(ctx, sp, fmt.Sprintf("Fetch disks failed %s", err))
self.taskFail(ctx, sp, fmt.Sprintf("Fetch disks failed %s", err))
return
}
for i := 0; i < len(disks); i++ {
disks[i].SetModelManager(models.DiskManager)
disks[i].SetSnapshotPolicy(sp.Id)
db.OpsLog.LogEvent(&disks[i], db.ACT_APPLY_SNAPSHOT_POLICY, nil, self.UserCred)
logclient.AddActionLogWithStartable(self, &disks[i], logclient.ACT_APPLY_SNAPSHOT_POLICY, nil, self.UserCred, true)
+1
View File
@@ -0,0 +1 @@
package multicloud // import "yunion.io/x/onecloud/pkg/multicloud"