Skip to content

Commit

Permalink
Fix Travis build. Adapt code and tests to go-marathon 0.1
Browse files Browse the repository at this point in the history
  • Loading branch information
x-cray committed Sep 14, 2016
1 parent 741d2db commit 84d648d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 15 deletions.
3 changes: 2 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
language: go

go:
- 1.4
- 1.5
- 1.6
- 1.7

install:
- make deps
Expand Down
13 changes: 11 additions & 2 deletions marathon/marathon_adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,12 @@ func extractServiceMetadata(source, destination map[string]string, port string)
func serviceMetadata(application *marathonClient.Application, port int) map[string]string {
result := make(map[string]string)
stringPort := strconv.Itoa(port)
extractServiceMetadata(*application.Env, result, stringPort)
extractServiceMetadata(*application.Labels, result, stringPort)
if application.Env != nil {
extractServiceMetadata(*application.Env, result, stringPort)
}
if application.Labels != nil {
extractServiceMetadata(*application.Labels, result, stringPort)
}
return result
}

Expand All @@ -173,6 +177,11 @@ func originalPorts(app *marathonClient.Application) []int {
}

func isHealthy(task *marathonClient.Task, app *marathonClient.Application) bool {
// Task has no healthchecks. Assume healthy.
if (app.HealthChecks == nil) || (len(*app.HealthChecks) == 0) {
return true;
}

// Tasks' health has not yet been checked.
if len(*app.HealthChecks) != len(task.HealthCheckResults) {
return false
Expand Down
24 changes: 12 additions & 12 deletions marathon/marathon_adapter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ var _ = Describe("MarathonAdapter", func() {
// Healthy 2. Healthchecks are passing.
{
Ports: []int{3000},
HealthChecks: []*marathonClient.HealthCheck{
HealthChecks: &[]marathonClient.HealthCheck{
{},
},
Tasks: []*marathonClient.Task{
{
Ports: []int{3000},
HealthCheckResult: []*marathonClient.HealthCheckResult{
HealthCheckResults: []*marathonClient.HealthCheckResult{
{
Alive: true,
},
Expand All @@ -70,13 +70,13 @@ var _ = Describe("MarathonAdapter", func() {
// Unhealthy 1. Healthchecks are not passing.
{
Ports: []int{3000},
HealthChecks: []*marathonClient.HealthCheck{
HealthChecks: &[]marathonClient.HealthCheck{
{},
},
Tasks: []*marathonClient.Task{
{
Ports: []int{3000},
HealthCheckResult: []*marathonClient.HealthCheckResult{
HealthCheckResults: []*marathonClient.HealthCheckResult{
{
Alive: false,
},
Expand All @@ -87,13 +87,13 @@ var _ = Describe("MarathonAdapter", func() {
// Unhealthy 2. Healthchecks are either not passing or missing healthcheck results.
{
Ports: []int{3000},
HealthChecks: []*marathonClient.HealthCheck{
HealthChecks: &[]marathonClient.HealthCheck{
{},
},
Tasks: []*marathonClient.Task{
{
Ports: []int{3000},
HealthCheckResult: []*marathonClient.HealthCheckResult{
HealthCheckResults: []*marathonClient.HealthCheckResult{
{
Alive: false,
},
Expand All @@ -111,7 +111,7 @@ var _ = Describe("MarathonAdapter", func() {
Apps: []marathonClient.Application{
{
ID: "/app/staging/web-app",
Env: map[string]string{
Env: &map[string]string{
"NODE_ENV": "production",
"SERVICE_TAGS": "production",
"SERVICE_NAME": "web-app",
Expand All @@ -133,11 +133,11 @@ var _ = Describe("MarathonAdapter", func() {
Apps: []marathonClient.Application{
{
ID: "/app/staging/web-app",
Env: map[string]string{
Env: &map[string]string{
"SERVICE_TAGS": "production",
"SERVICE_NAME": "web-app",
},
Labels: map[string]string{
Labels: &map[string]string{
"SERVICE_TAGS": "production-labelled",
"SERVICE_NAME": "web-app-labelled",
},
Expand All @@ -158,7 +158,7 @@ var _ = Describe("MarathonAdapter", func() {
Apps: []marathonClient.Application{
{
ID: "/app/staging/web-app",
Env: map[string]string{
Env: &map[string]string{
"SERVICE_TAGS": "staging",
},
Ports: []int{
Expand All @@ -184,14 +184,14 @@ var _ = Describe("MarathonAdapter", func() {
Apps: []marathonClient.Application{
{
ID: "/app/staging/web-app",
Env: map[string]string{
Env: &map[string]string{
"SERVICE_TAGS": "production",
"SERVICE_80_NAME": "web-app-1",
"SERVICE_8080_NAME": "web-app-2",
},
Container: &marathonClient.Container{
Docker: &marathonClient.Docker{
PortMappings: []*marathonClient.PortMapping{
PortMappings: &[]marathonClient.PortMapping{
{
ContainerPort: 80,
},
Expand Down

0 comments on commit 84d648d

Please sign in to comment.