Add unit test for TestMasterFromZK and TestMesosMasterFromZK

This commit is contained in:
Lawrence Wong 2022-08-22 14:54:03 -07:00
parent 63cdb96c7a
commit 6ce516663a
3 changed files with 50 additions and 0 deletions

View file

@ -65,3 +65,14 @@ func GetDefaultClusterFromZKUrl(zkURL string) *Cluster {
AgentRoot: "/var/lib/mesos",
}
}
func GetDefaultMesosClusterFromZKUrl(zkURL string) *Cluster {
return &Cluster{
Name: "defaultCluster",
AuthMechanism: "UNAUTHENTICATED",
ZK: zkURL,
SchedZKPath: "/mesos",
AgentRunDir: "latest",
AgentRoot: "/var/lib/mesos",
}
}

View file

@ -180,6 +180,35 @@ func TestLeaderFromZK(t *testing.T) {
assert.Equal(t, "http://192.168.33.7:8081", url)
}
func TestMasterFromZK(t *testing.T) {
cluster := realis.GetDefaultClusterFromZKUrl("192.168.33.2:2181")
masterNodesMap, err := realis.MasterNodesFromZK(*cluster)
assert.NoError(t, err)
for _, hostnames := range masterNodesMap {
for _, hostname := range hostnames {
assert.NoError(t, err)
assert.Equal(t, "192.168.33.7", hostname)
}
}
}
func TestMesosMasterFromZK(t *testing.T) {
cluster := realis.GetDefaultMesosClusterFromZKUrl("192.168.33.2:2181")
masterNodesMap, err := realis.MesosMasterNodesFromZK(*cluster)
assert.NoError(t, err)
for _, hostnames := range masterNodesMap {
for _, hostname := range hostnames {
assert.NoError(t, err)
assert.Equal(t, "localhost", hostname)
}
}
}
func TestInvalidAuroraURL(t *testing.T) {
for _, url := range []string{
"http://doesntexist.com:8081/apitest",

10
zk.go
View file

@ -287,6 +287,11 @@ func MesosFromZKOpts(options ...ZKOpt) (string, error) {
return mesosURL, nil
}
// Retrieves current Aurora master nodes from ZK.
func MasterNodesFromZK(cluster Cluster) (map[string][]string, error) {
return MasterNodesFromZKOpts(ZKEndpoints(strings.Split(cluster.ZK, ",")...), ZKPath(cluster.SchedZKPath))
}
// Retrieves current Mesos master nodes/leader from ZK with a custom configuration.
func MasterNodesFromZKOpts(options ...ZKOpt) (map[string][]string, error) {
result := make(map[string][]string)
@ -382,6 +387,11 @@ func MasterNodesFromZKOpts(options ...ZKOpt) (map[string][]string, error) {
return result, nil
}
// Retrieves current Mesos Aurora master nodes from ZK.
func MesosMasterNodesFromZK(cluster Cluster) (map[string][]string, error) {
return MesosMasterNodesFromZKOpts(ZKEndpoints(strings.Split(cluster.ZK, ",")...), ZKPath(cluster.SchedZKPath))
}
// Retrieves current mesos master nodes/leader from ZK with a custom configuration.
func MesosMasterNodesFromZKOpts(options ...ZKOpt) (map[string][]string, error) {
result := make(map[string][]string)