Browse Source

取消Hub与存储相关接口

feature_gxh
Sydonian 6 months ago
parent
commit
ccc86b647a
24 changed files with 208 additions and 492 deletions
  1. +1
    -1
      client/internal/cmdline/serve.go
  2. +1
    -1
      client/internal/cmdline/test.go
  3. +1
    -1
      client/internal/cmdline/vfstest.go
  4. +1
    -0
      client/internal/services/object.go
  5. +4
    -0
      client/internal/services/service.go
  6. +49
    -36
      client/internal/services/user_space.go
  7. +27
    -18
      client/internal/ticktock/check_shardstore.go
  8. +28
    -20
      client/internal/ticktock/shardstore_gc.go
  9. +24
    -14
      client/internal/uploader/user_space_upload.go
  10. +0
    -145
      common/pkgs/ioswitch2/ops2/file.go
  11. +8
    -14
      common/pkgs/ioswitch2/parser/gen/generator.go
  12. +3
    -5
      common/pkgs/ioswitch2/parser/opt/ec.go
  13. +1
    -1
      common/pkgs/ioswitch2/parser/opt/misc.go
  14. +1
    -1
      common/pkgs/ioswitch2/parser/opt/s2s.go
  15. +6
    -11
      common/pkgs/ioswitch2/plans/complete_multipart.go
  16. +7
    -12
      common/pkgs/ioswitchlrc/parser/passes.go
  17. +2
    -0
      common/pkgs/rpc/hub/cache.go
  18. +29
    -49
      common/pkgs/rpc/hub/hub.pb.go
  19. +0
    -6
      common/pkgs/rpc/hub/hub.proto
  20. +7
    -155
      common/pkgs/rpc/hub/hub_grpc.pb.go
  21. +2
    -2
      common/pkgs/rpc/hub/server.go
  22. +2
    -0
      common/pkgs/rpc/hub/user_space.go
  23. +2
    -0
      hub/internal/rpc/cache.go
  24. +2
    -0
      hub/internal/rpc/user_space.go

+ 1
- 1
client/internal/cmdline/serve.go View File

@@ -142,7 +142,7 @@ func serveHTTP(configPath string, opts serveHTTPOptions) {
mntChan := mnt.Start() mntChan := mnt.Start()
defer mnt.Stop() defer mnt.Stop()


svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, mnt)
svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, mnt, stgPool)


// HTTP接口 // HTTP接口
httpCfg := config.Cfg().HTTP httpCfg := config.Cfg().HTTP


+ 1
- 1
client/internal/cmdline/test.go View File

@@ -133,7 +133,7 @@ func test(configPath string) {
// 上传器 // 上传器
uploader := uploader.NewUploader(publock, &conCol, stgPool, stgMeta, db) uploader := uploader.NewUploader(publock, &conCol, stgPool, stgMeta, db)


svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, nil)
svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, nil, stgPool)


go func() { go func() {
doTest(svc) doTest(svc)


+ 1
- 1
client/internal/cmdline/vfstest.go View File

@@ -126,7 +126,7 @@ func vfsTest(configPath string, opts serveHTTPOptions) {
mntChan := mnt.Start() mntChan := mnt.Start()
defer mnt.Stop() defer mnt.Stop()


svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, mnt)
svc := services.NewService(publock, dlder, acStat, uploader, strgSel, stgMeta, db, evtPub, mnt, stgPool)


// HTTP接口 // HTTP接口
httpCfg := config.Cfg().HTTP httpCfg := config.Cfg().HTTP


+ 1
- 0
client/internal/services/object.go View File

@@ -709,6 +709,7 @@ func (svc *ObjectService) CompleteMultipartUpload(objectID types.ObjectID, index
} }


exeCtx := exec.NewExecContext() exeCtx := exec.NewExecContext()
exec.SetValueByType(exeCtx, svc.StgPool)
ret, err := bld.Execute(exeCtx).Wait(context.Background()) ret, err := bld.Execute(exeCtx).Wait(context.Background())
if err != nil { if err != nil {
return types.Object{}, err return types.Object{}, err


+ 4
- 0
client/internal/services/service.go View File

@@ -9,6 +9,7 @@ import (
"gitlink.org.cn/cloudream/jcs-pub/client/internal/mount" "gitlink.org.cn/cloudream/jcs-pub/client/internal/mount"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/uploader" "gitlink.org.cn/cloudream/jcs-pub/client/internal/uploader"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/pool"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/sysevent" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/sysevent"
) )


@@ -23,6 +24,7 @@ type Service struct {
DB *db.DB DB *db.DB
EvtPub *sysevent.Publisher EvtPub *sysevent.Publisher
Mount *mount.Mount Mount *mount.Mount
StgPool *pool.Pool
} }


func NewService( func NewService(
@@ -35,6 +37,7 @@ func NewService(
db *db.DB, db *db.DB,
evtPub *sysevent.Publisher, evtPub *sysevent.Publisher,
mount *mount.Mount, mount *mount.Mount,
stgPool *pool.Pool,
) *Service { ) *Service {
return &Service{ return &Service{
PubLock: publock, PubLock: publock,
@@ -46,5 +49,6 @@ func NewService(
DB: db, DB: db,
EvtPub: evtPub, EvtPub: evtPub,
Mount: mount, Mount: mount,
StgPool: stgPool,
} }
} }

+ 49
- 36
client/internal/services/user_space.go View File

@@ -11,7 +11,6 @@ import (
"gitlink.org.cn/cloudream/common/pkgs/trie" "gitlink.org.cn/cloudream/common/pkgs/trie"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types"
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"


"gitlink.org.cn/cloudream/jcs-pub/client/internal/db" "gitlink.org.cn/cloudream/jcs-pub/client/internal/db"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader/strategy" "gitlink.org.cn/cloudream/jcs-pub/client/internal/downloader/strategy"
@@ -19,7 +18,6 @@ import (
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock/reqbuilder" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock/reqbuilder"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/parser" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/parser"
hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/hub"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/types" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/types"
) )


@@ -103,8 +101,9 @@ func (svc *UserSpaceService) DownloadPackage(packageID clitypes.PackageID, users
for _, obj := range details { for _, obj := range details {
svc.AccessStat.AddAccessCounter(obj.Object.ObjectID, packageID, userspaceID, 1) svc.AccessStat.AddAccessCounter(obj.Object.ObjectID, packageID, userspaceID, 1)
} }

drv := plans.Execute(exec.NewExecContext())
exeCtx := exec.NewExecContext()
exec.SetValueByType(exeCtx, svc.StgPool)
drv := plans.Execute(exeCtx)
_, err = drv.Wait(context.Background()) _, err = drv.Wait(context.Background())
if err != nil { if err != nil {
return err return err
@@ -119,24 +118,32 @@ func (svc *UserSpaceService) SpaceToSpace(srcSpaceID clitypes.UserSpaceID, srcPa
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("source userspace not found: %d", srcSpaceID) return clitypes.SpaceToSpaceResult{}, fmt.Errorf("source userspace not found: %d", srcSpaceID)
} }


srcAddr, ok := srcSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
if !ok {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("source userspace %v has no grpc address", srcSpaceID)
srcStore, err := svc.StgPool.GetBaseStore(srcSpace)
if err != nil {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("get source userspace store: %w", err)
} }
srcSpaceCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&srcSpace.RecommendHub, srcAddr))
defer srcSpaceCli.Release()
// srcAddr, ok := srcSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
// if !ok {
// return clitypes.SpaceToSpaceResult{}, fmt.Errorf("source userspace %v has no grpc address", srcSpaceID)
// }
// srcSpaceCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&srcSpace.RecommendHub, srcAddr))
// defer srcSpaceCli.Release()


dstSpace := svc.UserSpaceMeta.Get(dstSpaceID) dstSpace := svc.UserSpaceMeta.Get(dstSpaceID)
if dstSpace == nil { if dstSpace == nil {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination userspace not found: %d", dstSpaceID) return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination userspace not found: %d", dstSpaceID)
} }


dstAddr, ok := dstSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
if !ok {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination userspace %v has no grpc address", srcSpaceID)
dstStore, err := svc.StgPool.GetBaseStore(dstSpace)
if err != nil {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("get destination userspace store: %w", err)
} }
dstSpaceCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&dstSpace.RecommendHub, dstAddr))
defer dstSpaceCli.Release()
// dstAddr, ok := dstSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
// if !ok {
// return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination userspace %v has no grpc address", srcSpaceID)
// }
// dstSpaceCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&dstSpace.RecommendHub, dstAddr))
// defer dstSpaceCli.Release()


srcPath = strings.Trim(srcPath, cdssdk.ObjectPathSeparator) srcPath = strings.Trim(srcPath, cdssdk.ObjectPathSeparator)
dstPath = strings.Trim(dstPath, cdssdk.ObjectPathSeparator) dstPath = strings.Trim(dstPath, cdssdk.ObjectPathSeparator)
@@ -149,19 +156,16 @@ func (svc *UserSpaceService) SpaceToSpace(srcSpaceID clitypes.UserSpaceID, srcPa
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination path is empty") return clitypes.SpaceToSpaceResult{}, fmt.Errorf("destination path is empty")
} }


listAllResp, cerr := srcSpaceCli.BaseStoreListAll(context.Background(), &hubrpc.BaseStoreListAll{
UserSpace: *srcSpace,
Path: srcPath,
})
entries, cerr := srcStore.ListAll(srcPath)
if cerr != nil { if cerr != nil {
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("list all from source userspace: %w", cerr.ToError())
return clitypes.SpaceToSpaceResult{}, fmt.Errorf("list all from source userspace: %w", cerr)
} }


srcPathComps := clitypes.SplitObjectPath(srcPath) srcPathComps := clitypes.SplitObjectPath(srcPath)
srcDirCompLen := len(srcPathComps) - 1 srcDirCompLen := len(srcPathComps) - 1


entryTree := trie.NewTrie[*types.ListEntry]() entryTree := trie.NewTrie[*types.ListEntry]()
for _, e := range listAllResp.Entries {
for _, e := range entries {
pa, ok := strings.CutSuffix(e.Path, clitypes.ObjectPathSeparator) pa, ok := strings.CutSuffix(e.Path, clitypes.ObjectPathSeparator)
comps := clitypes.SplitObjectPath(pa) comps := clitypes.SplitObjectPath(pa)
e.Path = pa e.Path = pa
@@ -221,8 +225,9 @@ func (svc *UserSpaceService) SpaceToSpace(srcSpaceID clitypes.UserSpaceID, srcPa
logger.Warnf("s2s: parse plan of file %v: %v", f, err) logger.Warnf("s2s: parse plan of file %v: %v", f, err)
continue continue
} }

_, cerr := plans.Execute(exec.NewExecContext()).Wait(context.Background())
exeCtx := exec.NewExecContext()
exec.SetValueByType(exeCtx, svc.StgPool)
_, cerr := plans.Execute(exeCtx).Wait(context.Background())
if cerr != nil { if cerr != nil {
failed = append(failed, f) failed = append(failed, f)
logger.Warnf("s2s: execute plan of file %v: %v", f, cerr) logger.Warnf("s2s: execute plan of file %v: %v", f, cerr)
@@ -237,22 +242,30 @@ func (svc *UserSpaceService) SpaceToSpace(srcSpaceID clitypes.UserSpaceID, srcPa
newDirPathes = append(newDirPathes, strings.Replace(dirPathes[i], srcPath, dstPath, 1)) newDirPathes = append(newDirPathes, strings.Replace(dirPathes[i], srcPath, dstPath, 1))
} }


mkdirResp, err := dstSpaceCli.BaseStoreMkdirs(context.Background(), &hubrpc.BaseStoreMkdirs{
UserSpace: *dstSpace,
Pathes: newDirPathes,
})
if err != nil {
failed = append(failed, dirPathes...)
logger.Warnf("s2s: mkdirs to destination userspace: %v", err)
} else {
for i := range dirPathes {
if mkdirResp.Successes[i] {
success = append(success, dirPathes[i])
} else {
failed = append(failed, dirPathes[i])
}
for _, d := range newDirPathes {
// mkdirResp, err := dstStore.Mkdir(context.Background(), &hubrpc.BaseStoreMkdirs{
// UserSpace: *dstSpace,
// Pathes: newDirPathes,
// })
err := dstStore.Mkdir(d)
if err != nil {
failed = append(failed, d)
} else {
success = append(success, d)
} }
} }
// if err != nil {
// failed = append(failed, dirPathes...)
// logger.Warnf("s2s: mkdirs to destination userspace: %v", err)
// } else {
// for i := range dirPathes {
// if mkdirResp.Successes[i] {
// success = append(success, dirPathes[i])
// } else {
// failed = append(failed, dirPathes[i])
// }
// }
// }


return clitypes.SpaceToSpaceResult{ return clitypes.SpaceToSpaceResult{
Success: success, Success: success,


+ 27
- 18
client/internal/ticktock/check_shardstore.go View File

@@ -1,7 +1,6 @@
package ticktock package ticktock


import ( import (
"context"
"fmt" "fmt"
"time" "time"


@@ -11,9 +10,7 @@ import (


"gitlink.org.cn/cloudream/jcs-pub/client/internal/db" "gitlink.org.cn/cloudream/jcs-pub/client/internal/db"
clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types" clitypes "gitlink.org.cn/cloudream/jcs-pub/client/types"
stgglb "gitlink.org.cn/cloudream/jcs-pub/common/globals"
hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/hub"
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
stgtypes "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/types"
) )


// CheckShardStore 代表一个用于处理代理缓存检查事件的结构体 // CheckShardStore 代表一个用于处理代理缓存检查事件的结构体
@@ -56,24 +53,36 @@ func (j *CheckShardStore) Execute(t *TickTock) {
} }


func (j *CheckShardStore) checkOne(t *TickTock, space *clitypes.UserSpaceDetail) error { func (j *CheckShardStore) checkOne(t *TickTock, space *clitypes.UserSpaceDetail) error {
addr, ok := space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
if !ok {
return fmt.Errorf("master of user space %v has no grpc address", space.UserSpace)
// addr, ok := space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
// if !ok {
// return fmt.Errorf("master of user space %v has no grpc address", space.UserSpace)
// }
// agtCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&space.RecommendHub, addr))
// defer agtCli.Release()

// ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Minute))
// defer cancel()

// checkResp, cerr := agtCli.CheckCache(ctx, &hubrpc.CheckCache{
// UserSpace: *space,
// })
// if cerr != nil {
// return fmt.Errorf("request to check cache: %w", cerr.ToError())
// }

store, err := t.stgPool.GetShardStore(space)
if err != nil {
return fmt.Errorf("getting shard store: %w", err)
} }
agtCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&space.RecommendHub, addr))
defer agtCli.Release()

ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Minute))
defer cancel()


checkResp, cerr := agtCli.CheckCache(ctx, &hubrpc.CheckCache{
UserSpace: *space,
})
if cerr != nil {
return fmt.Errorf("request to check cache: %w", cerr.ToError())
infos, err := store.ListAll()
if err != nil {
return fmt.Errorf("listing all files: %w", err)
} }


realFileHashes := lo.SliceToMap(checkResp.FileHashes, func(hash clitypes.FileHash) (clitypes.FileHash, bool) { return hash, true })
fileHashes := lo.Map(infos, func(info stgtypes.FileInfo, _ int) clitypes.FileHash { return info.Hash })

realFileHashes := lo.SliceToMap(fileHashes, func(hash clitypes.FileHash) (clitypes.FileHash, bool) { return hash, true })


// 在事务中执行缓存更新操作 // 在事务中执行缓存更新操作
t.db.DoTx(func(tx db.SQLContext) error { t.db.DoTx(func(tx db.SQLContext) error {


+ 28
- 20
client/internal/ticktock/shardstore_gc.go View File

@@ -1,7 +1,6 @@
package ticktock package ticktock


import ( import (
"context"
"fmt" "fmt"
"time" "time"


@@ -9,11 +8,8 @@ import (
"gitlink.org.cn/cloudream/common/utils/reflect2" "gitlink.org.cn/cloudream/common/utils/reflect2"
"gitlink.org.cn/cloudream/jcs-pub/client/internal/db" "gitlink.org.cn/cloudream/jcs-pub/client/internal/db"
"gitlink.org.cn/cloudream/jcs-pub/client/types" "gitlink.org.cn/cloudream/jcs-pub/client/types"
stgglb "gitlink.org.cn/cloudream/jcs-pub/common/globals"
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"


"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock/reqbuilder" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/distlock/reqbuilder"
hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/hub"
) )


type ShardStoreGC struct { type ShardStoreGC struct {
@@ -86,24 +82,36 @@ func (j *ShardStoreGC) gcOne(t *TickTock, space *types.UserSpaceDetail) error {
return err return err
} }


// 获取与节点通信的代理客户端
addr, ok := space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
if !ok {
return fmt.Errorf("master of user space %v has no grpc address", space.UserSpace)
store, err := t.stgPool.GetShardStore(space)
if err != nil {
return fmt.Errorf("getting shard store: %w", err)
} }
agtCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&space.RecommendHub, addr))
defer agtCli.Release()

// 向代理发送垃圾回收请求
ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Minute))
defer cancel()


_, cerr := agtCli.CacheGC(ctx, &hubrpc.CacheGC{
UserSpace: *space,
Availables: allFileHashes,
})
if cerr != nil {
return fmt.Errorf("request to cache gc: %w", cerr.ToError())
err = store.GC(allFileHashes)
if err != nil {
return fmt.Errorf("gc shard store: %w", err)
} }

return nil return nil

// // 获取与节点通信的代理客户端
// addr, ok := space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
// if !ok {
// return fmt.Errorf("master of user space %v has no grpc address", space.UserSpace)
// }
// agtCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&space.RecommendHub, addr))
// defer agtCli.Release()

// // 向代理发送垃圾回收请求
// ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(time.Minute))
// defer cancel()

// _, cerr := agtCli.CacheGC(ctx, &hubrpc.CacheGC{
// UserSpace: *space,
// Availables: allFileHashes,
// })
// if cerr != nil {
// return fmt.Errorf("request to cache gc: %w", cerr.ToError())
// }
// return nil
} }

+ 24
- 14
client/internal/uploader/user_space_upload.go View File

@@ -16,7 +16,6 @@ import (
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/ops2" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/ops2"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/parser" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/ioswitch2/parser"
corrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/coordinator" corrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/coordinator"
hubrpc "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc/hub"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/types" "gitlink.org.cn/cloudream/jcs-pub/common/pkgs/storage/types"
cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types" cortypes "gitlink.org.cn/cloudream/jcs-pub/coordinator/types"
) )
@@ -90,24 +89,35 @@ func (u *Uploader) UserSpaceUpload(userSpaceID clitypes.UserSpaceID, rootPath st


targetSapce := u.chooseUploadStorage(uploadSpaces, uploadAffinity) targetSapce := u.chooseUploadStorage(uploadSpaces, uploadAffinity)


addr, ok := srcSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
if !ok {
// addr, ok := srcSpace.RecommendHub.Address.(*cortypes.GRPCAddressInfo)
// if !ok {
// delPkg()
// return nil, fmt.Errorf("master of user space %v has no grpc address", srcSpace.UserSpace)
// }
// srcHubCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&srcSpace.RecommendHub, addr))
// defer srcHubCli.Release()

// listAllResp, cerr := srcHubCli.BaseStoreListAll(context.Background(), &hubrpc.BaseStoreListAll{
// UserSpace: *srcSpace,
// Path: rootPath,
// })
// if cerr != nil {
// delPkg()
// return nil, fmt.Errorf("listing base store: %w", cerr.ToError())
// }

store, err := u.stgPool.GetBaseStore(srcSpace)
if err != nil {
delPkg() delPkg()
return nil, fmt.Errorf("master of user space %v has no grpc address", srcSpace.UserSpace)
return nil, fmt.Errorf("getting base store: %w", err)
} }
srcHubCli := stgglb.HubRPCPool.Get(stgglb.SelectGRPCAddress(&srcSpace.RecommendHub, addr))
defer srcHubCli.Release()

listAllResp, cerr := srcHubCli.BaseStoreListAll(context.Background(), &hubrpc.BaseStoreListAll{
UserSpace: *srcSpace,
Path: rootPath,
})
if cerr != nil {
entries, err := store.ListAll(rootPath)
if err != nil {
delPkg() delPkg()
return nil, fmt.Errorf("listing base store: %w", cerr.ToError())
return nil, fmt.Errorf("listing base store: %w", err)
} }


adds, err := u.uploadFromBaseStore(srcSpace, &targetSapce.Space, listAllResp.Entries, rootPath)
adds, err := u.uploadFromBaseStore(srcSpace, &targetSapce.Space, entries, rootPath)
if err != nil { if err != nil {
delPkg() delPkg()
return nil, fmt.Errorf("uploading from base store: %w", err) return nil, fmt.Errorf("uploading from base store: %w", err)


+ 0
- 145
common/pkgs/ioswitch2/ops2/file.go View File

@@ -1,145 +0,0 @@
package ops2

import (
"fmt"
"io"
"os"
"path"

"gitlink.org.cn/cloudream/common/pkgs/future"
"gitlink.org.cn/cloudream/common/pkgs/ioswitch/dag"
"gitlink.org.cn/cloudream/common/pkgs/ioswitch/exec"
"gitlink.org.cn/cloudream/common/utils/io2"
)

func init() {
exec.UseOp[*FileRead]()
exec.UseOp[*FileWrite]()
}

type FileWrite struct {
Input exec.VarID `json:"input"`
FilePath string `json:"filePath"`
}

func (o *FileWrite) Execute(ctx *exec.ExecContext, e *exec.Executor) error {
input, err := exec.BindVar[*exec.StreamValue](e, ctx.Context, o.Input)
if err != nil {
return err
}
defer input.Stream.Close()

dir := path.Dir(o.FilePath)
err = os.MkdirAll(dir, 0777)
if err != nil {
return fmt.Errorf("mkdir: %w", err)
}

file, err := os.Create(o.FilePath)
if err != nil {
return fmt.Errorf("opening file: %w", err)
}
defer file.Close()

_, err = io.Copy(file, input.Stream)
if err != nil {
return fmt.Errorf("copying data to file: %w", err)
}

return nil
}

func (o *FileWrite) String() string {
return fmt.Sprintf("FileWrite %v -> %s", o.Input, o.FilePath)
}

type FileRead struct {
Output exec.VarID `json:"output"`
FilePath string `json:"filePath"`
}

func (o *FileRead) Execute(ctx *exec.ExecContext, e *exec.Executor) error {
file, err := os.Open(o.FilePath)
if err != nil {
return fmt.Errorf("opening file: %w", err)
}

fut := future.NewSetVoid()
e.PutVar(o.Output, &exec.StreamValue{
Stream: io2.AfterReadClosed(file, func(closer io.ReadCloser) {
fut.SetVoid()
}),
})
fut.Wait(ctx.Context)

return nil
}

func (o *FileRead) String() string {
return fmt.Sprintf("FileRead %s -> %v", o.FilePath, o.Output)
}

type FileReadNode struct {
dag.NodeBase
FilePath string
}

func (b *GraphNodeBuilder) NewFileRead(filePath string) *FileReadNode {
node := &FileReadNode{
FilePath: filePath,
}
b.AddNode(node)
node.OutputStreams().Init(node, 1)
return node
}

func (t *FileReadNode) Output() dag.StreamOutputSlot {
return dag.StreamOutputSlot{
Node: t,
Index: 0,
}
}

func (t *FileReadNode) GenerateOp() (exec.Op, error) {
return &FileRead{
Output: t.OutputStreams().Get(0).VarID,
FilePath: t.FilePath,
}, nil
}

// func (t *FileReadType) String() string {
// return fmt.Sprintf("FileRead[%s]%v%v", t.FilePath, formatStreamIO(node), formatValueIO(node))
// }

type FileWriteNode struct {
dag.NodeBase
FilePath string
}

func (b *GraphNodeBuilder) NewFileWrite(filePath string) *FileWriteNode {
node := &FileWriteNode{
FilePath: filePath,
}
b.AddNode(node)

node.InputStreams().Init(1)
return node
}

func (t *FileWriteNode) Input() dag.StreamOutputSlot {
return dag.StreamOutputSlot{
Node: t,
Index: 0,
}
}

func (t *FileWriteNode) SetInput(str *dag.StreamVar) {
str.To(t, 0)
}

func (t *FileWriteNode) GenerateOp() (exec.Op, error) {
return &FileWrite{
Input: t.InputStreams().Get(0).VarID,
FilePath: t.FilePath,
}, nil
}

+ 8
- 14
common/pkgs/ioswitch2/parser/gen/generator.go View File

@@ -261,8 +261,7 @@ func buildFromNode(ctx *state.GenerateState, f ioswitch2.From) (ops2.FromNode, e
switch f := f.(type) { switch f := f.(type) {
case *ioswitch2.FromShardStore: case *ioswitch2.FromShardStore:
getShard := ctx.DAG.NewGetShardInfo(f.UserSpace, f.FileHash) getShard := ctx.DAG.NewGetShardInfo(f.UserSpace, f.FileHash)
getShard.Env().ToEnvDriver()
getShard.Env().Pinned = true
getShard.Env().ToEnvDriver(true)


read := ctx.DAG.NewBaseReadDyn(f, f.UserSpace, types.DefaultOpen()) read := ctx.DAG.NewBaseReadDyn(f, f.UserSpace, types.DefaultOpen())


@@ -293,12 +292,10 @@ func buildFromNode(ctx *state.GenerateState, f ioswitch2.From) (ops2.FromNode, e


switch addr := f.UserSpace.RecommendHub.Address.(type) { switch addr := f.UserSpace.RecommendHub.Address.(type) {
case *cortypes.HttpAddressInfo: case *cortypes.HttpAddressInfo:
read.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: f.UserSpace.RecommendHub})
read.Env().Pinned = true
read.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: f.UserSpace.RecommendHub}, false)


case *cortypes.GRPCAddressInfo: case *cortypes.GRPCAddressInfo:
read.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: f.UserSpace.RecommendHub, Address: *addr})
read.Env().Pinned = true
read.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: f.UserSpace.RecommendHub, Address: *addr}, false)


default: default:
return nil, fmt.Errorf("unsupported node address type %T", addr) return nil, fmt.Errorf("unsupported node address type %T", addr)
@@ -308,8 +305,7 @@ func buildFromNode(ctx *state.GenerateState, f ioswitch2.From) (ops2.FromNode, e


case *ioswitch2.FromDriver: case *ioswitch2.FromDriver:
n := ctx.DAG.NewFromDriver(f, f.Handle) n := ctx.DAG.NewFromDriver(f, f.Handle)
n.Env().ToEnvDriver()
n.Env().Pinned = true
n.Env().ToEnvDriver(true)


if f.StreamIndex.IsRaw() { if f.StreamIndex.IsRaw() {
f.Handle.RangeHint.Offset = repRange.Offset f.Handle.RangeHint.Offset = repRange.Offset
@@ -367,8 +363,7 @@ func buildToNode(ctx *state.GenerateState, t ioswitch2.To) (ops2.ToNode, error)
write.Env().Pinned = true write.Env().Pinned = true


add := ctx.DAG.NewStoreShard(t.Space, t.ResultStoreKey) add := ctx.DAG.NewStoreShard(t.Space, t.ResultStoreKey)
add.Env().ToEnvDriver()
add.Env().Pinned = true
add.Env().ToEnvDriver(true)


write.FileInfoVar().ToSlot(add.FileInfoSlot()) write.FileInfoVar().ToSlot(add.FileInfoSlot())


@@ -376,8 +371,7 @@ func buildToNode(ctx *state.GenerateState, t ioswitch2.To) (ops2.ToNode, error)


case *ioswitch2.ToDriver: case *ioswitch2.ToDriver:
n := ctx.DAG.NewToDriver(t, t.Handle) n := ctx.DAG.NewToDriver(t, t.Handle)
n.Env().ToEnvDriver()
n.Env().Pinned = true
n.Env().ToEnvDriver(true)


return n, nil return n, nil


@@ -400,10 +394,10 @@ func buildToNode(ctx *state.GenerateState, t ioswitch2.To) (ops2.ToNode, error)
func setEnvByAddress(n dag.Node, hub cortypes.Hub, addr cortypes.HubAddressInfo) error { func setEnvByAddress(n dag.Node, hub cortypes.Hub, addr cortypes.HubAddressInfo) error {
switch addr := addr.(type) { switch addr := addr.(type) {
case *cortypes.HttpAddressInfo: case *cortypes.HttpAddressInfo:
n.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: hub})
n.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: hub}, false)


case *cortypes.GRPCAddressInfo: case *cortypes.GRPCAddressInfo:
n.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: hub, Address: *addr})
n.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: hub, Address: *addr}, false)


default: default:
return fmt.Errorf("unsupported node address type %T", addr) return fmt.Errorf("unsupported node address type %T", addr)


+ 3
- 5
common/pkgs/ioswitch2/parser/opt/ec.go View File

@@ -116,12 +116,10 @@ func UseECMultiplier(ctx *state.GenerateState) {
callMul := ctx.DAG.NewCallECMultiplier(to.Space) callMul := ctx.DAG.NewCallECMultiplier(to.Space)
switch addr := to.Space.RecommendHub.Address.(type) { switch addr := to.Space.RecommendHub.Address.(type) {
case *cortypes.HttpAddressInfo: case *cortypes.HttpAddressInfo:
callMul.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: to.Space.RecommendHub})
callMul.Env().Pinned = true
callMul.Env().ToEnvWorker(&ioswitch2.HttpHubWorker{Hub: to.Space.RecommendHub}, false)


case *cortypes.GRPCAddressInfo: case *cortypes.GRPCAddressInfo:
callMul.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: to.Space.RecommendHub, Address: *addr})
callMul.Env().Pinned = true
callMul.Env().ToEnvWorker(&ioswitch2.HubWorker{Hub: to.Space.RecommendHub, Address: *addr}, false)


default: default:
return true return true
@@ -137,7 +135,7 @@ func UseECMultiplier(ctx *state.GenerateState) {
} }


hbr := ctx.DAG.NewGetShardHTTPRequest(brNode.UserSpace, fromShards[i].FileHash) hbr := ctx.DAG.NewGetShardHTTPRequest(brNode.UserSpace, fromShards[i].FileHash)
hbr.Env().CopyFrom(brNode.Env())
hbr.Env().ToEnvDriver(true)
hbr.HTTPRequestVar().ToSlot(callMul.HTTPRequestSlot(i)) hbr.HTTPRequestVar().ToSlot(callMul.HTTPRequestSlot(i))
} }




+ 1
- 1
common/pkgs/ioswitch2/parser/opt/misc.go View File

@@ -43,7 +43,7 @@ func StoreShardWriteResult(ctx *state.GenerateState) {
} }


storeNode := ctx.DAG.NewStore() storeNode := ctx.DAG.NewStore()
storeNode.Env().ToEnvDriver()
storeNode.Env().ToEnvDriver(true)


storeNode.Store(n.ShardInfoKey, n.ShardInfoVar().Var()) storeNode.Store(n.ShardInfoKey, n.ShardInfoVar().Var())
return true return true


+ 1
- 1
common/pkgs/ioswitch2/parser/opt/s2s.go View File

@@ -69,7 +69,7 @@ loop:


// 先获取文件路径,送到S2S节点 // 先获取文件路径,送到S2S节点
gsNode := ctx.DAG.NewGetShardInfo(fromShard.UserSpace, fromShard.FileHash) gsNode := ctx.DAG.NewGetShardInfo(fromShard.UserSpace, fromShard.FileHash)
gsNode.Env().CopyFrom(toBase.Env())
gsNode.Env().ToEnvDriver(true)
gsNode.FileInfoVar().ToSlot(s2sNode.SrcFileInfoSlot()) gsNode.FileInfoVar().ToSlot(s2sNode.SrcFileInfoSlot())


// 原本BaseWriteNode的FileInfoVar被替换成S2SNode的FileInfoVar // 原本BaseWriteNode的FileInfoVar被替换成S2SNode的FileInfoVar


+ 6
- 11
common/pkgs/ioswitch2/plans/complete_multipart.go View File

@@ -17,17 +17,14 @@ func CompleteMultipart(blocks []clitypes.ObjectBlock, blockSpaces []clitypes.Use
sizes[i] = blk.Size sizes[i] = blk.Size
} }
joinNode := da.NewSegmentJoin(sizes) joinNode := da.NewSegmentJoin(sizes)
joinNode.Env().ToEnvWorker(getWorkerInfo(targetSpace.RecommendHub))
joinNode.Env().Pinned = true
joinNode.Env().ToEnvWorker(getWorkerInfo(targetSpace.RecommendHub), true)


for i, blk := range blocks { for i, blk := range blocks {
gs := da.NewGetShardInfo(blockSpaces[i], blk.FileHash) gs := da.NewGetShardInfo(blockSpaces[i], blk.FileHash)
gs.Env().ToEnvDriver()
gs.Env().Pinned = true
gs.Env().ToEnvDriver(true)


br := da.NewBaseReadDyn(nil, blockSpaces[i], types.DefaultOpen()) br := da.NewBaseReadDyn(nil, blockSpaces[i], types.DefaultOpen())
br.Env().ToEnvWorker(getWorkerInfo(blockSpaces[i].RecommendHub))
br.Env().Pinned = true
br.Env().ToEnvWorker(getWorkerInfo(blockSpaces[i].RecommendHub), true)


gs.FileInfoVar().ToSlot(br.FileInfoSlot()) gs.FileInfoVar().ToSlot(br.FileInfoSlot())


@@ -36,18 +33,16 @@ func CompleteMultipart(blocks []clitypes.ObjectBlock, blockSpaces []clitypes.Use


// TODO 应该采取更合理的方式同时支持Parser和直接生成DAG // TODO 应该采取更合理的方式同时支持Parser和直接生成DAG
br := da.NewBaseWrite(nil, targetSpace, os2.GenerateRandomFileName(20)) br := da.NewBaseWrite(nil, targetSpace, os2.GenerateRandomFileName(20))
br.Env().ToEnvWorker(getWorkerInfo(targetSpace.RecommendHub))
br.Env().Pinned = true
br.Env().ToEnvWorker(getWorkerInfo(targetSpace.RecommendHub), true)


as := da.NewStoreShard(targetSpace, shardInfoKey) as := da.NewStoreShard(targetSpace, shardInfoKey)
as.Env().ToEnvDriver()
as.Env().Pinned = true
as.Env().ToEnvDriver(true)


joinNode.Joined().ToSlot(br.Input()) joinNode.Joined().ToSlot(br.Input())


if shardInfoKey != "" { if shardInfoKey != "" {
store := da.NewStore() store := da.NewStore()
store.Env().ToEnvDriver()
store.Env().ToEnvDriver(true)
store.Store(shardInfoKey, as.ShardInfoVar().Var()) store.Store(shardInfoKey, as.ShardInfoVar().Var())
} }




+ 7
- 12
common/pkgs/ioswitchlrc/parser/passes.go View File

@@ -65,8 +65,7 @@ func buildFromNode(ctx *GenerateContext, f ioswitchlrc.From) (ops2.FromNode, err
switch f := f.(type) { switch f := f.(type) {
case *ioswitchlrc.FromNode: case *ioswitchlrc.FromNode:
getShard := ctx.DAG.NewGetShardInfo(f.Space, f.FileHash) getShard := ctx.DAG.NewGetShardInfo(f.Space, f.FileHash)
getShard.Env().ToEnvDriver()
getShard.Env().Pinned = true
getShard.Env().ToEnvDriver(true)


read := ctx.DAG.NewBaseReadPathVar(f, f.Space, types.DefaultOpen()) read := ctx.DAG.NewBaseReadPathVar(f, f.Space, types.DefaultOpen())


@@ -77,15 +76,13 @@ func buildFromNode(ctx *GenerateContext, f ioswitchlrc.From) (ops2.FromNode, err
} }


// TODO2 支持HTTP协议 // TODO2 支持HTTP协议
getShard.Env().ToEnvWorker(&ioswitchlrc.HubWorker{Hub: f.Space.RecommendHub, Address: *f.Space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)})
getShard.Env().Pinned = true
getShard.Env().ToEnvWorker(&ioswitchlrc.HubWorker{Hub: f.Space.RecommendHub, Address: *f.Space.RecommendHub.Address.(*cortypes.GRPCAddressInfo)}, false)


return read, nil return read, nil


case *ioswitchlrc.FromDriver: case *ioswitchlrc.FromDriver:
n := ctx.DAG.NewFromDriver(f.Handle) n := ctx.DAG.NewFromDriver(f.Handle)
n.Env().ToEnvDriver()
n.Env().Pinned = true
n.Env().ToEnvDriver(true)


if f.DataIndex == -1 { if f.DataIndex == -1 {
f.Handle.RangeHint.Offset = repRange.Offset f.Handle.RangeHint.Offset = repRange.Offset
@@ -113,7 +110,7 @@ func buildToNode(ctx *GenerateContext, t ioswitchlrc.To) (ops2.ToNode, error) {
// n.Env().ToEnvWorker(&ioswitchlrc.HttpHubWorker{Node: t.Hub}) // n.Env().ToEnvWorker(&ioswitchlrc.HttpHubWorker{Node: t.Hub})
// TODO2 支持HTTP协议 // TODO2 支持HTTP协议
case *cortypes.GRPCAddressInfo: case *cortypes.GRPCAddressInfo:
write.Env().ToEnvWorker(&ioswitchlrc.HubWorker{Hub: t.Space.RecommendHub, Address: *addr})
write.Env().ToEnvWorker(&ioswitchlrc.HubWorker{Hub: t.Space.RecommendHub, Address: *addr}, false)


default: default:
return nil, fmt.Errorf("unsupported node address type %T", addr) return nil, fmt.Errorf("unsupported node address type %T", addr)
@@ -122,8 +119,7 @@ func buildToNode(ctx *GenerateContext, t ioswitchlrc.To) (ops2.ToNode, error) {
write.Env().Pinned = true write.Env().Pinned = true


add := ctx.DAG.NewStoreShard(t.Space, t.FileHashStoreKey) add := ctx.DAG.NewStoreShard(t.Space, t.FileHashStoreKey)
add.Env().ToEnvDriver()
add.Env().Pinned = true
add.Env().ToEnvDriver(true)


write.FileInfoVar().ToSlot(add.FileInfoSlot()) write.FileInfoVar().ToSlot(add.FileInfoSlot())


@@ -131,8 +127,7 @@ func buildToNode(ctx *GenerateContext, t ioswitchlrc.To) (ops2.ToNode, error) {


case *ioswitchlrc.ToDriver: case *ioswitchlrc.ToDriver:
n := ctx.DAG.NewToDriver(t.Handle) n := ctx.DAG.NewToDriver(t.Handle)
n.Env().ToEnvDriver()
n.Env().Pinned = true
n.Env().ToEnvDriver(true)


return n, nil return n, nil


@@ -226,7 +221,7 @@ func storeIPFSWriteResult(ctx *GenerateContext) {
} }


storeNode := ctx.DAG.NewStore() storeNode := ctx.DAG.NewStore()
storeNode.Env().ToEnvDriver()
storeNode.Env().ToEnvDriver(true)


storeNode.Store(n.ShardInfoKey, n.ShardInfoVar().Var()) storeNode.Store(n.ShardInfoKey, n.ShardInfoVar().Var())
return true return true


+ 2
- 0
common/pkgs/rpc/hub/cache.go View File

@@ -1,5 +1,6 @@
package hubrpc package hubrpc


/*
import ( import (
"context" "context"


@@ -46,3 +47,4 @@ func (c *Client) CacheGC(ctx context.Context, req *CacheGC) (*CacheGCResp, *rpc.
func (s *Server) CacheGC(ctx context.Context, req *rpc.Request) (*rpc.Response, error) { func (s *Server) CacheGC(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.CacheGC, ctx, req) return rpc.UnaryServer(s.svrImpl.CacheGC, ctx, req)
} }
*/

+ 29
- 49
common/pkgs/rpc/hub/hub.pb.go View File

@@ -26,7 +26,7 @@ var file_pkgs_rpc_hub_hub_proto_rawDesc = []byte{
0x0a, 0x16, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x75, 0x62, 0x2f, 0x68, 0x0a, 0x16, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x75, 0x62, 0x2f, 0x68,
0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x68, 0x75, 0x62, 0x72, 0x70, 0x63, 0x75, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x68, 0x75, 0x62, 0x72, 0x70, 0x63,
0x1a, 0x12, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x70, 0x63, 0x2e, 0x70, 0x1a, 0x12, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x70, 0x63, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x32, 0xf0, 0x03, 0x0a, 0x03, 0x48, 0x75, 0x62, 0x12, 0x2c, 0x0a, 0x0d,
0x72, 0x6f, 0x74, 0x6f, 0x32, 0xb8, 0x02, 0x0a, 0x03, 0x48, 0x75, 0x62, 0x12, 0x2c, 0x0a, 0x0d,
0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0c, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x49, 0x4f, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0c, 0x2e,
0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70,
0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0c, 0x53, 0x65, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x0c, 0x53, 0x65,
@@ -41,28 +41,16 @@ var file_pkgs_rpc_hub_hub_proto_rawDesc = []byte{
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49,
0x4f, 0x56, 0x61, 0x72, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x4f, 0x56, 0x61, 0x72, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x31, 0x0a, 0x12, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x74, 0x6f, 0x72, 0x65,
0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70,
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x11, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x74,
0x6f, 0x72, 0x65, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x73, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x65, 0x12, 0x23, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x0a, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43,
0x61, 0x63, 0x68, 0x65, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x12, 0x26, 0x0a, 0x07, 0x43, 0x61, 0x63, 0x68, 0x65, 0x47, 0x43, 0x12, 0x0c, 0x2e, 0x72,
0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x04, 0x50, 0x69, 0x6e,
0x67, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27,
0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63,
0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52,
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x6c, 0x69,
0x6e, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63, 0x6e, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72,
0x65, 0x61, 0x6d, 0x2f, 0x6a, 0x63, 0x73, 0x2d, 0x70, 0x75, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x68, 0x75, 0x62, 0x72,
0x70, 0x63, 0x3b, 0x68, 0x75, 0x62, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x33,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61,
0x74, 0x65, 0x12, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x1a, 0x0d, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42,
0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x6c, 0x69, 0x6e, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x63,
0x6e, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x6a, 0x63, 0x73, 0x2d,
0x70, 0x75, 0x62, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x6b, 0x67, 0x73, 0x2f,
0x72, 0x70, 0x63, 0x2f, 0x68, 0x75, 0x62, 0x72, 0x70, 0x63, 0x3b, 0x68, 0x75, 0x62, 0x72, 0x70,
0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }


var file_pkgs_rpc_hub_hub_proto_goTypes = []any{ var file_pkgs_rpc_hub_hub_proto_goTypes = []any{
@@ -71,33 +59,25 @@ var file_pkgs_rpc_hub_hub_proto_goTypes = []any{
(*rpc.Response)(nil), // 2: rpc.Response (*rpc.Response)(nil), // 2: rpc.Response
} }
var file_pkgs_rpc_hub_hub_proto_depIdxs = []int32{ var file_pkgs_rpc_hub_hub_proto_depIdxs = []int32{
0, // 0: hubrpc.Hub.ExecuteIOPlan:input_type -> rpc.Request
1, // 1: hubrpc.Hub.SendIOStream:input_type -> rpc.ChunkedData
0, // 2: hubrpc.Hub.GetIOStream:input_type -> rpc.Request
0, // 3: hubrpc.Hub.SendIOVar:input_type -> rpc.Request
0, // 4: hubrpc.Hub.GetIOVar:input_type -> rpc.Request
0, // 5: hubrpc.Hub.BaseStoreListAll:input_type -> rpc.Request
0, // 6: hubrpc.Hub.BaseStoreMkdirs:input_type -> rpc.Request
0, // 7: hubrpc.Hub.CheckCache:input_type -> rpc.Request
0, // 8: hubrpc.Hub.CacheGC:input_type -> rpc.Request
0, // 9: hubrpc.Hub.Ping:input_type -> rpc.Request
0, // 10: hubrpc.Hub.GetState:input_type -> rpc.Request
2, // 11: hubrpc.Hub.ExecuteIOPlan:output_type -> rpc.Response
2, // 12: hubrpc.Hub.SendIOStream:output_type -> rpc.Response
1, // 13: hubrpc.Hub.GetIOStream:output_type -> rpc.ChunkedData
2, // 14: hubrpc.Hub.SendIOVar:output_type -> rpc.Response
2, // 15: hubrpc.Hub.GetIOVar:output_type -> rpc.Response
2, // 16: hubrpc.Hub.BaseStoreListAll:output_type -> rpc.Response
2, // 17: hubrpc.Hub.BaseStoreMkdirs:output_type -> rpc.Response
2, // 18: hubrpc.Hub.CheckCache:output_type -> rpc.Response
2, // 19: hubrpc.Hub.CacheGC:output_type -> rpc.Response
2, // 20: hubrpc.Hub.Ping:output_type -> rpc.Response
2, // 21: hubrpc.Hub.GetState:output_type -> rpc.Response
11, // [11:22] is the sub-list for method output_type
0, // [0:11] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
0, // 0: hubrpc.Hub.ExecuteIOPlan:input_type -> rpc.Request
1, // 1: hubrpc.Hub.SendIOStream:input_type -> rpc.ChunkedData
0, // 2: hubrpc.Hub.GetIOStream:input_type -> rpc.Request
0, // 3: hubrpc.Hub.SendIOVar:input_type -> rpc.Request
0, // 4: hubrpc.Hub.GetIOVar:input_type -> rpc.Request
0, // 5: hubrpc.Hub.Ping:input_type -> rpc.Request
0, // 6: hubrpc.Hub.GetState:input_type -> rpc.Request
2, // 7: hubrpc.Hub.ExecuteIOPlan:output_type -> rpc.Response
2, // 8: hubrpc.Hub.SendIOStream:output_type -> rpc.Response
1, // 9: hubrpc.Hub.GetIOStream:output_type -> rpc.ChunkedData
2, // 10: hubrpc.Hub.SendIOVar:output_type -> rpc.Response
2, // 11: hubrpc.Hub.GetIOVar:output_type -> rpc.Response
2, // 12: hubrpc.Hub.Ping:output_type -> rpc.Response
2, // 13: hubrpc.Hub.GetState:output_type -> rpc.Response
7, // [7:14] is the sub-list for method output_type
0, // [0:7] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
} }


func init() { file_pkgs_rpc_hub_hub_proto_init() } func init() { file_pkgs_rpc_hub_hub_proto_init() }


+ 0
- 6
common/pkgs/rpc/hub/hub.proto View File

@@ -14,12 +14,6 @@ service Hub {
rpc SendIOVar(rpc.Request)returns(rpc.Response); rpc SendIOVar(rpc.Request)returns(rpc.Response);
rpc GetIOVar(rpc.Request)returns(rpc.Response); rpc GetIOVar(rpc.Request)returns(rpc.Response);


rpc BaseStoreListAll(rpc.Request) returns(rpc.Response);
rpc BaseStoreMkdirs(rpc.Request) returns(rpc.Response);

rpc CheckCache(rpc.Request) returns(rpc.Response);
rpc CacheGC(rpc.Request) returns(rpc.Response);

rpc Ping(rpc.Request) returns(rpc.Response); rpc Ping(rpc.Request) returns(rpc.Response);
rpc GetState(rpc.Request) returns(rpc.Response); rpc GetState(rpc.Request) returns(rpc.Response);
} }

+ 7
- 155
common/pkgs/rpc/hub/hub_grpc.pb.go View File

@@ -20,17 +20,13 @@ import (
const _ = grpc.SupportPackageIsVersion7 const _ = grpc.SupportPackageIsVersion7


const ( const (
Hub_ExecuteIOPlan_FullMethodName = "/hubrpc.Hub/ExecuteIOPlan"
Hub_SendIOStream_FullMethodName = "/hubrpc.Hub/SendIOStream"
Hub_GetIOStream_FullMethodName = "/hubrpc.Hub/GetIOStream"
Hub_SendIOVar_FullMethodName = "/hubrpc.Hub/SendIOVar"
Hub_GetIOVar_FullMethodName = "/hubrpc.Hub/GetIOVar"
Hub_BaseStoreListAll_FullMethodName = "/hubrpc.Hub/BaseStoreListAll"
Hub_BaseStoreMkdirs_FullMethodName = "/hubrpc.Hub/BaseStoreMkdirs"
Hub_CheckCache_FullMethodName = "/hubrpc.Hub/CheckCache"
Hub_CacheGC_FullMethodName = "/hubrpc.Hub/CacheGC"
Hub_Ping_FullMethodName = "/hubrpc.Hub/Ping"
Hub_GetState_FullMethodName = "/hubrpc.Hub/GetState"
Hub_ExecuteIOPlan_FullMethodName = "/hubrpc.Hub/ExecuteIOPlan"
Hub_SendIOStream_FullMethodName = "/hubrpc.Hub/SendIOStream"
Hub_GetIOStream_FullMethodName = "/hubrpc.Hub/GetIOStream"
Hub_SendIOVar_FullMethodName = "/hubrpc.Hub/SendIOVar"
Hub_GetIOVar_FullMethodName = "/hubrpc.Hub/GetIOVar"
Hub_Ping_FullMethodName = "/hubrpc.Hub/Ping"
Hub_GetState_FullMethodName = "/hubrpc.Hub/GetState"
) )


// HubClient is the client API for Hub service. // HubClient is the client API for Hub service.
@@ -42,10 +38,6 @@ type HubClient interface {
GetIOStream(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (Hub_GetIOStreamClient, error) GetIOStream(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (Hub_GetIOStreamClient, error)
SendIOVar(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) SendIOVar(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
GetIOVar(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) GetIOVar(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
BaseStoreListAll(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
BaseStoreMkdirs(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
CheckCache(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
CacheGC(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
Ping(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) Ping(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
GetState(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) GetState(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error)
} }
@@ -151,42 +143,6 @@ func (c *hubClient) GetIOVar(ctx context.Context, in *rpc.Request, opts ...grpc.
return out, nil return out, nil
} }


func (c *hubClient) BaseStoreListAll(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) {
out := new(rpc.Response)
err := c.cc.Invoke(ctx, Hub_BaseStoreListAll_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}

func (c *hubClient) BaseStoreMkdirs(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) {
out := new(rpc.Response)
err := c.cc.Invoke(ctx, Hub_BaseStoreMkdirs_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}

func (c *hubClient) CheckCache(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) {
out := new(rpc.Response)
err := c.cc.Invoke(ctx, Hub_CheckCache_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}

func (c *hubClient) CacheGC(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) {
out := new(rpc.Response)
err := c.cc.Invoke(ctx, Hub_CacheGC_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}

func (c *hubClient) Ping(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) { func (c *hubClient) Ping(ctx context.Context, in *rpc.Request, opts ...grpc.CallOption) (*rpc.Response, error) {
out := new(rpc.Response) out := new(rpc.Response)
err := c.cc.Invoke(ctx, Hub_Ping_FullMethodName, in, out, opts...) err := c.cc.Invoke(ctx, Hub_Ping_FullMethodName, in, out, opts...)
@@ -214,10 +170,6 @@ type HubServer interface {
GetIOStream(*rpc.Request, Hub_GetIOStreamServer) error GetIOStream(*rpc.Request, Hub_GetIOStreamServer) error
SendIOVar(context.Context, *rpc.Request) (*rpc.Response, error) SendIOVar(context.Context, *rpc.Request) (*rpc.Response, error)
GetIOVar(context.Context, *rpc.Request) (*rpc.Response, error) GetIOVar(context.Context, *rpc.Request) (*rpc.Response, error)
BaseStoreListAll(context.Context, *rpc.Request) (*rpc.Response, error)
BaseStoreMkdirs(context.Context, *rpc.Request) (*rpc.Response, error)
CheckCache(context.Context, *rpc.Request) (*rpc.Response, error)
CacheGC(context.Context, *rpc.Request) (*rpc.Response, error)
Ping(context.Context, *rpc.Request) (*rpc.Response, error) Ping(context.Context, *rpc.Request) (*rpc.Response, error)
GetState(context.Context, *rpc.Request) (*rpc.Response, error) GetState(context.Context, *rpc.Request) (*rpc.Response, error)
mustEmbedUnimplementedHubServer() mustEmbedUnimplementedHubServer()
@@ -242,18 +194,6 @@ func (UnimplementedHubServer) SendIOVar(context.Context, *rpc.Request) (*rpc.Res
func (UnimplementedHubServer) GetIOVar(context.Context, *rpc.Request) (*rpc.Response, error) { func (UnimplementedHubServer) GetIOVar(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetIOVar not implemented") return nil, status.Errorf(codes.Unimplemented, "method GetIOVar not implemented")
} }
func (UnimplementedHubServer) BaseStoreListAll(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method BaseStoreListAll not implemented")
}
func (UnimplementedHubServer) BaseStoreMkdirs(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method BaseStoreMkdirs not implemented")
}
func (UnimplementedHubServer) CheckCache(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method CheckCache not implemented")
}
func (UnimplementedHubServer) CacheGC(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method CacheGC not implemented")
}
func (UnimplementedHubServer) Ping(context.Context, *rpc.Request) (*rpc.Response, error) { func (UnimplementedHubServer) Ping(context.Context, *rpc.Request) (*rpc.Response, error) {
return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented")
} }
@@ -374,78 +314,6 @@ func _Hub_GetIOVar_Handler(srv interface{}, ctx context.Context, dec func(interf
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }


func _Hub_BaseStoreListAll_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(rpc.Request)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(HubServer).BaseStoreListAll(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Hub_BaseStoreListAll_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(HubServer).BaseStoreListAll(ctx, req.(*rpc.Request))
}
return interceptor(ctx, in, info, handler)
}

func _Hub_BaseStoreMkdirs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(rpc.Request)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(HubServer).BaseStoreMkdirs(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Hub_BaseStoreMkdirs_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(HubServer).BaseStoreMkdirs(ctx, req.(*rpc.Request))
}
return interceptor(ctx, in, info, handler)
}

func _Hub_CheckCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(rpc.Request)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(HubServer).CheckCache(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Hub_CheckCache_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(HubServer).CheckCache(ctx, req.(*rpc.Request))
}
return interceptor(ctx, in, info, handler)
}

func _Hub_CacheGC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(rpc.Request)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(HubServer).CacheGC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Hub_CacheGC_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(HubServer).CacheGC(ctx, req.(*rpc.Request))
}
return interceptor(ctx, in, info, handler)
}

func _Hub_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _Hub_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(rpc.Request) in := new(rpc.Request)
if err := dec(in); err != nil { if err := dec(in); err != nil {
@@ -501,22 +369,6 @@ var Hub_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetIOVar", MethodName: "GetIOVar",
Handler: _Hub_GetIOVar_Handler, Handler: _Hub_GetIOVar_Handler,
}, },
{
MethodName: "BaseStoreListAll",
Handler: _Hub_BaseStoreListAll_Handler,
},
{
MethodName: "BaseStoreMkdirs",
Handler: _Hub_BaseStoreMkdirs_Handler,
},
{
MethodName: "CheckCache",
Handler: _Hub_CheckCache_Handler,
},
{
MethodName: "CacheGC",
Handler: _Hub_CacheGC_Handler,
},
{ {
MethodName: "Ping", MethodName: "Ping",
Handler: _Hub_Ping_Handler, Handler: _Hub_Ping_Handler,


+ 2
- 2
common/pkgs/rpc/hub/server.go View File

@@ -5,10 +5,10 @@ import (
) )


type HubAPI interface { type HubAPI interface {
CacheSvc
// CacheSvc
IOSwitchSvc IOSwitchSvc
MicsSvc MicsSvc
UserSpaceSvc
// UserSpaceSvc
} }


type Server struct { type Server struct {


+ 2
- 0
common/pkgs/rpc/hub/user_space.go View File

@@ -1,5 +1,6 @@
package hubrpc package hubrpc


/*
import ( import (
"context" "context"


@@ -51,3 +52,4 @@ func (c *Client) BaseStoreMkdirs(ctx context.Context, req *BaseStoreMkdirs) (*Ba
func (s *Server) BaseStoreMkdirs(ctx context.Context, req *rpc.Request) (*rpc.Response, error) { func (s *Server) BaseStoreMkdirs(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.BaseStoreMkdirs, ctx, req) return rpc.UnaryServer(s.svrImpl.BaseStoreMkdirs, ctx, req)
} }
*/

+ 2
- 0
hub/internal/rpc/cache.go View File

@@ -1,5 +1,6 @@
package rpc package rpc


/*
import ( import (
"context" "context"
"fmt" "fmt"
@@ -42,3 +43,4 @@ func (svc *Service) CacheGC(context context.Context, msg *hubrpc.CacheGC) (*hubr


return &hubrpc.CacheGCResp{}, nil return &hubrpc.CacheGCResp{}, nil
} }
*/

+ 2
- 0
hub/internal/rpc/user_space.go View File

@@ -1,5 +1,6 @@
package rpc package rpc


/*
import ( import (
"context" "context"


@@ -45,3 +46,4 @@ func (svc *Service) BaseStoreMkdirs(context context.Context, msg *hubrpc.BaseSto
Successes: suc, Successes: suc,
}, nil }, nil
} }
*/

Loading…
Cancel
Save