mirror of
https://github.com/hanzoai/metrics.git
synced 2026-10-30 20:03:39 +00:00
112 lines
2.5 KiB
Go
112 lines
2.5 KiB
Go
package marathon
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/promauth"
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/promscrape/discoveryutil"
|
|
)
|
|
|
|
func TestGetAppsList_Success(t *testing.T) {
|
|
s := newMockMarathonServer(func() []byte {
|
|
return []byte(`{
|
|
"apps": [
|
|
{
|
|
"id": "/myapp",
|
|
"cmd": "env && sleep 60",
|
|
"args": null,
|
|
"user": null,
|
|
"env": {
|
|
"LD_LIBRARY_PATH": "/usr/local/lib/myLib"
|
|
},
|
|
"instances": 3,
|
|
"cpus": 0.1,
|
|
"mem": 5,
|
|
"disk": 0,
|
|
"executor": "",
|
|
"constraints": [
|
|
[
|
|
"hostname",
|
|
"UNIQUE",
|
|
""
|
|
]
|
|
],
|
|
"uris": [
|
|
"https://raw.github.com/mesosphere/marathon/master/README.md"
|
|
],
|
|
"ports": [
|
|
10013,
|
|
10015
|
|
],
|
|
"portDefinitions": [
|
|
{
|
|
"labels": {"pdl1":"pdl1", "pdl2":"pdl2"},
|
|
"port": 1999
|
|
}
|
|
],
|
|
"requirePorts": false,
|
|
"backoffSeconds": 1,
|
|
"backoffFactor": 1.15,
|
|
"maxLaunchDelaySeconds": 3600,
|
|
"container": null,
|
|
"healthChecks": [],
|
|
"dependencies": [],
|
|
"upgradeStrategy": {
|
|
"minimumHealthCapacity": 1,
|
|
"maximumOverCapacity": 1
|
|
},
|
|
"labels": {},
|
|
"acceptedResourceRoles": null,
|
|
"version": "2015-09-25T15:13:48.343Z",
|
|
"versionInfo": {
|
|
"lastScalingAt": "2015-09-25T15:13:48.343Z",
|
|
"lastConfigChangeAt": "2015-09-25T15:13:48.343Z"
|
|
},
|
|
"tasksStaged": 0,
|
|
"tasksRunning": 0,
|
|
"tasksHealthy": 0,
|
|
"tasksUnhealthy": 0,
|
|
"deployments": [
|
|
{
|
|
"id": "9538079c-3898-4e32-aa31-799bf9097f74"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}`)
|
|
})
|
|
|
|
// Prepare a discovery HTTP client who calls mock server.
|
|
client, err := discoveryutil.NewClient(s.URL, nil, nil, nil, &promauth.HTTPClientConfig{})
|
|
if err != nil {
|
|
t.Fatalf("unexpected error wen creating http client: %s", err)
|
|
}
|
|
ac := &apiConfig{
|
|
cs: []*discoveryutil.Client{client},
|
|
}
|
|
|
|
apps, err := GetAppsList(ac)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error in GetAppsList(): %s", err)
|
|
}
|
|
|
|
expect := &AppList{
|
|
Apps: []app{
|
|
{
|
|
ID: "/myapp",
|
|
PortDefinitions: []portDefinition{
|
|
{
|
|
Labels: map[string]string{"pdl1": "pdl1", "pdl2": "pdl2"},
|
|
Port: 1999,
|
|
},
|
|
},
|
|
Labels: map[string]string{},
|
|
},
|
|
},
|
|
}
|
|
if !reflect.DeepEqual(apps, expect) {
|
|
t.Fatalf("unexpected result, got: %v, expect: %v", apps, expect)
|
|
}
|
|
}
|