add initial files
This commit is contained in:
commit
6233590bb4
8 changed files with 307 additions and 0 deletions
71
main.go
Normal file
71
main.go
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/davidallendj/partitions/internal/groups"
|
||||
"github.com/davidallendj/partitions/internal/partitions"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
var (
|
||||
pm = partitions.DefaultManager{}
|
||||
n1 = "nid0001"
|
||||
n2 = "nid0002"
|
||||
n3 = "nid0003"
|
||||
p1 = "test1"
|
||||
p2 = "test2"
|
||||
)
|
||||
|
||||
// create new partitions with partition manager while testing adding
|
||||
// the same partition multiple times
|
||||
unwrapError(pm.CreatePartition(p1, []string{n3}))
|
||||
unwrapError(pm.CreatePartition(p2, nil))
|
||||
unwrapError(pm.CreatePartition(p2, nil))
|
||||
|
||||
// try and put the same node in multiple partitions which should cause error
|
||||
unwrapError(pm.AddNodeToPartition(p1, n1))
|
||||
unwrapError(pm.AddNodeToPartition(p1, n1))
|
||||
unwrapError(pm.AddNodeToPartition(p2, n2))
|
||||
|
||||
// try and put the same node in multiple groups
|
||||
var (
|
||||
g1 = groups.Group{
|
||||
Name: "group1",
|
||||
Labels: []string{n1, n2, "hello"},
|
||||
}
|
||||
g2 = groups.Group{
|
||||
Name: "group2",
|
||||
Labels: []string{n1, n3, "world"},
|
||||
}
|
||||
)
|
||||
|
||||
g1NodeIDs := ToJSON(g1.GetNodeIDs(&pm))
|
||||
g1PartitionIDs := ToJSON(g1.GetPartitions(&pm))
|
||||
g2NodeIDs := ToJSON(g2.GetNodeIDs(&pm))
|
||||
g2PartitionIDs := ToJSON(g2.GetPartitions(&pm))
|
||||
|
||||
log.Info().Any("manager.partitions", pm.GetPartitions()).Msg("partition manager")
|
||||
log.Info().
|
||||
Any("group", g1).
|
||||
Any("found node IDs in manager", g1NodeIDs).
|
||||
Any("partitions containing found nodes", g1PartitionIDs).
|
||||
Msg("group 1")
|
||||
log.Info().
|
||||
Any("group", g2).
|
||||
Any("found node IDs in manager", g2NodeIDs).
|
||||
Any("partitions containing found nodes", g2PartitionIDs).
|
||||
Msg("group 2")
|
||||
}
|
||||
|
||||
func unwrapError(err error) {
|
||||
if err != nil {
|
||||
log.Error().Err(err).Msg("something went wrong...")
|
||||
}
|
||||
}
|
||||
|
||||
func ToJSON(v any) string {
|
||||
b, _ := json.Marshal(v)
|
||||
return string(b)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue