agent: http checks work inside of service definitions

This commit is contained in:
Ryan Uber 2015-01-29 12:11:42 -08:00
parent 1caaae0ff7
commit 029a6025aa
2 changed files with 38 additions and 2 deletions

View file

@ -32,7 +32,7 @@ func (s *ServiceDefinition) NodeService() *structs.NodeService {
func (s *ServiceDefinition) CheckTypes() (checks CheckTypes) {
s.Checks = append(s.Checks, &s.Check)
for _, check := range s.Checks {
if (check.Script != "" && check.Interval != 0) || check.TTL != 0 {
if check.Valid() {
checks = append(checks, check)
}
}

View file

@ -1,8 +1,10 @@
package agent
import (
"github.com/hashicorp/consul/consul/structs"
"testing"
"time"
"github.com/hashicorp/consul/consul/structs"
)
func TestAgentStructs_HealthCheck(t *testing.T) {
@ -14,3 +16,37 @@ func TestAgentStructs_HealthCheck(t *testing.T) {
t.Fatalf("bad: %v", check.Status)
}
}
func TestAgentStructs_CheckTypes(t *testing.T) {
svc := new(ServiceDefinition)
// Singular Check field works
svc.Check = CheckType{
Script: "/foo/bar",
Interval: 10 * time.Second,
}
// Returns HTTP checks
svc.Checks = append(svc.Checks, &CheckType{
HTTP: "http://foo/bar",
Interval: 10 * time.Second,
})
// Returns Script checks
svc.Checks = append(svc.Checks, &CheckType{
Script: "/foo/bar",
Interval: 10 * time.Second,
})
// Returns TTL checks
svc.Checks = append(svc.Checks, &CheckType{
TTL: 10 * time.Second,
})
// Does not return invalid checks
svc.Checks = append(svc.Checks, &CheckType{})
if len(svc.CheckTypes()) != 4 {
t.Fatalf("bad: %#v", svc)
}
}