auctioneer+rpc: thread through new MinNodeTier for order submission/listing

This commit is contained in:
Olaoluwa Osuntokun 2020-09-18 17:47:09 -07:00
parent 4b41c323c7
commit 618fe0ad53
2 changed files with 54 additions and 1 deletions

View file

@ -373,10 +373,16 @@ func (c *Client) SubmitOrder(ctx context.Context, o order.Order,
}
case *order.Bid:
nodeTierEnum, err := MarshallNodeTier(castOrder.MinNodeTier)
if err != nil {
return err
}
serverBid := &poolrpc.ServerBid{
Details: details,
LeaseDurationBlocks: castOrder.LeaseDuration,
Version: uint32(castOrder.Version),
MinNodeTier: nodeTierEnum,
}
rpcRequest.Details = &poolrpc.ServerSubmitOrderRequest_Bid{
Bid: serverBid,
@ -1166,3 +1172,21 @@ func (c *Client) BatchSnapshot(ctx context.Context,
BatchId: targetBatch[:],
})
}
// MarshallNodeTier maps the node tier integer into the enum used on the RPC
// interface.
func MarshallNodeTier(nodeTier order.NodeTier) (poolrpc.NodeTier, error) {
switch nodeTier {
case order.NodeTierDefault:
return poolrpc.NodeTier_TIER_DEFAULT, nil
case order.NodeTier0:
return poolrpc.NodeTier_TIER_0, nil
case order.NodeTier1:
return poolrpc.NodeTier_TIER_1, nil
default:
return 0, fmt.Errorf("unknown node tier: %v", nodeTier)
}
}

View file

@ -1092,9 +1092,14 @@ func (s *rpcServer) SubmitOrder(ctx context.Context,
if err != nil {
return nil, err
}
nodeTier, err := unmarshallNodeTier(b.MinNodeTier)
if err != nil {
return nil, err
}
o = &order.Bid{
Kit: *kit,
Kit: *kit,
MinNodeTier: nodeTier,
}
default:
@ -1297,10 +1302,16 @@ func (s *rpcServer) ListOrders(ctx context.Context,
asks = append(asks, rpcAsk)
case *order.Bid:
nodeTier, err := auctioneer.MarshallNodeTier(o.MinNodeTier)
if err != nil {
return nil, err
}
rpcBid := &poolrpc.Bid{
Details: details,
LeaseDurationBlocks: dbDetails.LeaseDuration,
Version: uint32(o.Version),
MinNodeTier: nodeTier,
}
bids = append(bids, rpcBid)
@ -1997,3 +2008,21 @@ func nodeHasTorAddrs(nodeAddrs []string) bool {
return false
}
// unmarshallNodeTier maps the RPC node tier enum to the node tier used in
// memory.
func unmarshallNodeTier(nodeTier poolrpc.NodeTier) (order.NodeTier, error) {
switch nodeTier {
case poolrpc.NodeTier_TIER_DEFAULT:
return order.DefaultMinNodeTier, nil
case poolrpc.NodeTier_TIER_0:
return order.NodeTier0, nil
case poolrpc.NodeTier_TIER_1:
return order.NodeTier1, nil
default:
return 0, fmt.Errorf("unknown node tier: %v", nodeTier)
}
}