in watcher/handlerEndpoint.go [75:104]
func (e *EpHandler) update(obj interface{}) {
eps, ok := obj.(*v1.Endpoints)
if !ok {
log.Println("In Endpoint Update; cannot cast to *v1.Endpoints.")
return
}
podSvcName := eps.GetObjectMeta().GetName()
namespace := eps.GetNamespace()
if !e.Ep.NsManager.IncludeNamespace(namespace) {
log.Println("Namespace not included")
return
}
for _, subset := range eps.Subsets {
for _, port := range subset.Ports {
portnum := fmt.Sprint(port.Port)
portname := port.Name
key := util.ConstructSvcPortString(namespace, podSvcName, portnum)
for _, addr := range subset.Addresses {
k := "temp_" + key
v := util.ConstructIPPortString(addr.IP, portnum, portname)
e.Ep.RedisClient.DefaultDBSAdd(k, v)
}
e.Ep.RedisClient.DefaultDBSUnionStore(key, "temp_"+key)
e.Ep.RedisClient.DefaultDBDel("temp_" + key)
}
}
}