From 016a9d5c052736773d5cdd657fb4be5c1b1bd011 Mon Sep 17 00:00:00 2001 From: Diptanu Choudhury Date: Wed, 18 Nov 2015 19:31:29 -0800 Subject: [PATCH] Nuking the service and registering it so that checks are cleaned up --- client/consul.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/client/consul.go b/client/consul.go index 402c38963..ba9c1009b 100644 --- a/client/consul.go +++ b/client/consul.go @@ -60,6 +60,9 @@ func NewConsulClient(logger *log.Logger, consulAddr string) (*ConsulClient, erro } func (c *ConsulClient) Register(task *structs.Task, allocID string) error { + // Nuking the service first so that we can re-sync everything cleanly + c.Deregister(task) + var mErr multierror.Error for _, service := range task.Services { c.logger.Printf("[INFO] consul: Registering service %s with Consul.", service.Name) @@ -74,6 +77,9 @@ func (c *ConsulClient) Register(task *structs.Task, allocID string) error { func (c *ConsulClient) Deregister(task *structs.Task) error { var mErr multierror.Error for _, service := range task.Services { + if service.Id == "" { + continue + } c.logger.Printf("[INFO] consul: De-Registering service %v with Consul", service.Name) if err := c.deregisterService(service.Id); err != nil { c.logger.Printf("[ERROR] consul: Error in de-registering service %v from Consul", service.Name)