✨ MQ, KV and MQ allocator
This commit is contained in:
34
pkg/nex/allocator.go
Normal file
34
pkg/nex/allocator.go
Normal file
@@ -0,0 +1,34 @@
|
||||
package nex
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git.solsynth.dev/hypernet/nexus/pkg/proto"
|
||||
)
|
||||
|
||||
type AllocatableResourceType = string
|
||||
|
||||
const (
|
||||
AllocatableResourceMq = AllocatableResourceType("mq")
|
||||
AllocatableResourceKv = AllocatableResourceType("kv")
|
||||
)
|
||||
|
||||
func (v *Conn) AllocResource(t AllocatableResourceType) any {
|
||||
switch t {
|
||||
case AllocatableResourceMq:
|
||||
conn := v.GetNexusGrpcConn()
|
||||
resp, err := proto.NewAllocatorServiceClient(conn).AllocMessageQueue(context.Background(), &proto.AllocMqRequest{})
|
||||
if err != nil || !resp.IsSuccess {
|
||||
return nil
|
||||
}
|
||||
return resp.Addr
|
||||
case AllocatableResourceKv:
|
||||
conn := v.GetNexusGrpcConn()
|
||||
resp, err := proto.NewAllocatorServiceClient(conn).AllocKv(context.Background(), &proto.AllocKvRequest{})
|
||||
if err != nil || !resp.IsSuccess {
|
||||
return nil
|
||||
}
|
||||
return resp.Endpoints
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user