|
123456789101112131415161718192021222324252627282930313233343536373839 |
- package reqbuilder
-
- import (
- "strconv"
-
- "gitlink.org.cn/cloudream/common/pkgs/distlock"
- "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock/lockprovider"
- cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
- )
-
- type StorageLockReqBuilder struct {
- *LockRequestBuilder
- }
-
- func (b *LockRequestBuilder) Storage() *StorageLockReqBuilder {
- return &StorageLockReqBuilder{LockRequestBuilder: b}
- }
-
- func (b *StorageLockReqBuilder) Buzy(storageID cortypes.StorageID) *StorageLockReqBuilder {
- b.locks = append(b.locks, distlock.Lock{
- Path: b.makePath(storageID),
- Name: lockprovider.StorageBuzyLock,
- Target: *lockprovider.NewStringLockTarget(),
- })
- return b
- }
-
- func (b *StorageLockReqBuilder) GC(storageID cortypes.StorageID) *StorageLockReqBuilder {
- b.locks = append(b.locks, distlock.Lock{
- Path: b.makePath(storageID),
- Name: lockprovider.StorageGCLock,
- Target: *lockprovider.NewStringLockTarget(),
- })
- return b
- }
-
- func (b *StorageLockReqBuilder) makePath(storageID cortypes.StorageID) []string {
- return []string{lockprovider.StorageLockPathPrefix, strconv.FormatInt(int64(storageID), 10)}
- }
|