diff --git a/pkg/compute/models/snapshotpolicy.go b/pkg/compute/models/snapshotpolicy.go index d73d4ff461..2030b708f8 100644 --- a/pkg/compute/models/snapshotpolicy.go +++ b/pkg/compute/models/snapshotpolicy.go @@ -592,7 +592,7 @@ func (sp *SSnapshotPolicy) PerformUnbindDisks( return nil, err } disk := diskObj.(*SDisk) - if utils.IsInStringArray(disk.Id, diskIds) { + if !utils.IsInStringArray(disk.Id, diskIds) { diskIds = append(diskIds, disk.Id) } } diff --git a/pkg/compute/tasks/snapshotpolicy_bind_disks_task.go b/pkg/compute/tasks/snapshotpolicy_bind_disks_task.go index 904a530a28..5096acbe41 100644 --- a/pkg/compute/tasks/snapshotpolicy_bind_disks_task.go +++ b/pkg/compute/tasks/snapshotpolicy_bind_disks_task.go @@ -24,6 +24,7 @@ import ( api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/compute/models" "yunion.io/x/onecloud/pkg/util/logclient" ) @@ -64,6 +65,11 @@ func (self *SnapshotpolicyBindDisksTask) OnInit(ctx context.Context, obj db.ISta func (self *SnapshotpolicyBindDisksTask) OnSnapshotPolicyBindDisksComplete(ctx context.Context, sp *models.SSnapshotPolicy, data jsonutils.JSONObject) { sp.SetStatus(ctx, self.UserCred, apis.STATUS_AVAILABLE, "") + + notifyclient.EventNotify(ctx, self.UserCred, notifyclient.SEventNotifyParam{ + Obj: sp, + Action: notifyclient.ActionExecute, + }) self.SetStageComplete(ctx, nil) } diff --git a/pkg/compute/tasks/snapshotpolicy_unbind_disks_task.go b/pkg/compute/tasks/snapshotpolicy_unbind_disks_task.go index 442c9240f7..cc4c2abe33 100644 --- a/pkg/compute/tasks/snapshotpolicy_unbind_disks_task.go +++ b/pkg/compute/tasks/snapshotpolicy_unbind_disks_task.go @@ -24,6 +24,7 @@ import ( api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" + "yunion.io/x/onecloud/pkg/cloudcommon/notifyclient" "yunion.io/x/onecloud/pkg/compute/models" "yunion.io/x/onecloud/pkg/util/logclient" ) @@ -64,6 +65,10 @@ func (self *SnapshotpolicyUnbindDisksTask) OnInit(ctx context.Context, obj db.IS func (self *SnapshotpolicyUnbindDisksTask) OnSnapshotPolicyUnbindDisksComplete(ctx context.Context, sp *models.SSnapshotPolicy, data jsonutils.JSONObject) { sp.SetStatus(ctx, self.UserCred, apis.STATUS_AVAILABLE, "") + notifyclient.EventNotify(ctx, self.UserCred, notifyclient.SEventNotifyParam{ + Obj: sp, + Action: notifyclient.ActionExecute, + }) self.SetStageComplete(ctx, nil) }