41 lines
1.0 KiB
Go
41 lines
1.0 KiB
Go
package task
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
|
"gitlink.org.cn/cloudream/common/pkgs/task"
|
|
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
|
|
"gitlink.org.cn/cloudream/storage/common/pkgs/cmd"
|
|
"gitlink.org.cn/cloudream/storage/common/pkgs/iterator"
|
|
)
|
|
|
|
type CreatePackageResult = cmd.CreatePackageResult
|
|
|
|
type CreatePackage struct {
|
|
cmd cmd.CreatePackage
|
|
|
|
Result *CreatePackageResult
|
|
}
|
|
|
|
func NewCreatePackage(userID cdssdk.UserID, bucketID cdssdk.BucketID, name string, objIter iterator.UploadingObjectIterator, nodeAffinity *cdssdk.NodeID) *CreatePackage {
|
|
return &CreatePackage{
|
|
cmd: *cmd.NewCreatePackage(userID, bucketID, name, objIter, nodeAffinity),
|
|
}
|
|
}
|
|
|
|
func (t *CreatePackage) Execute(task *task.Task[TaskContext], ctx TaskContext, complete CompleteFn) {
|
|
log := logger.WithType[CreatePackage]("Task")
|
|
log.Debugf("begin")
|
|
defer log.Debugf("end")
|
|
|
|
ret, err := t.cmd.Execute(&cmd.UpdatePackageContext{
|
|
Distlock: ctx.distlock,
|
|
})
|
|
t.Result = ret
|
|
|
|
complete(err, CompleteOption{
|
|
RemovingDelay: time.Minute,
|
|
})
|
|
}
|