forked from TrueCloudLab/frostfs-sdk-go
[#306] netmap: Allow to select empty set of nodes
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
This commit is contained in:
parent
0352b5b191
commit
f7da6ba99c
7 changed files with 43 additions and 15 deletions
|
@ -254,6 +254,39 @@ func TestPlacementPolicy_ProcessSelectors(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPlacementPolicy_PartiallyMissingContainer(t *testing.T) {
|
||||
s := `REP 2 IN D1OBJ
|
||||
REP 2 IN D2OBJ
|
||||
CBF 2
|
||||
SELECT 2 FROM PRIMARY AS D1OBJ
|
||||
SELECT 2 FROM SECONDARY AS D2OBJ
|
||||
FILTER ClusterName EQ D1OBJ AS PRIMARY
|
||||
FILTER ClusterName EQ D2OBJ AS SECONDARY`
|
||||
|
||||
var p PlacementPolicy
|
||||
require.NoError(t, p.DecodeString(s))
|
||||
|
||||
nodes := []NodeInfo{
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "1"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "2"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "3"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "4"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "5"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "6"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "7"),
|
||||
nodeInfoFromAttributes("ClusterName", "D1OBJ", "ID", "8"),
|
||||
}
|
||||
|
||||
var nm NetMap
|
||||
nm.SetNodes(nodes)
|
||||
|
||||
res, err := nm.ContainerNodes(p, nil)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, res, 2)
|
||||
require.Len(t, res[0], 4)
|
||||
require.Len(t, res[1], 0)
|
||||
}
|
||||
|
||||
func TestPlacementPolicy_Like(t *testing.T) {
|
||||
nodes := []NodeInfo{
|
||||
nodeInfoFromAttributes("Country", "Russia"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue