// makeCheck creates a Consul Check Registration struct func (c *ConsulService) makeCheck(service *structs.Service, check *structs.ServiceCheck, ip string, port int) *consul.AgentCheckRegistration { if check.Name == "" { check.Name = fmt.Sprintf("service: %s check", service.Name) } check.Id = check.Hash(service.Id) cr := &consul.AgentCheckRegistration{ ID: check.Id, Name: check.Name, ServiceID: service.Id, } cr.Interval = check.Interval.String() cr.Timeout = check.Timeout.String() switch check.Type { case structs.ServiceCheckHTTP: if check.Protocol == "" { check.Protocol = "http" } url := url.URL{ Scheme: check.Protocol, Host: fmt.Sprintf("%s:%d", ip, port), Path: check.Path, } cr.HTTP = url.String() case structs.ServiceCheckTCP: cr.TCP = fmt.Sprintf("%s:%d", ip, port) case structs.ServiceCheckScript: cr.Script = check.Script // TODO This needs to include the path of the alloc dir and based on driver types } return cr }