in proxy/register/register.go [32:69]
func AdaptEndpoints() error {
var err error
// To be called by services based on CSE SDK,
// mesher has to register endpoint with rest://ip:port
oldProtoMap := config.GlobalDefinition.ServiceComb.Protocols
if _, ok := oldProtoMap[common.HTTPProtocol]; !ok {
return nil
}
if _, ok := oldProtoMap[chassisCommon.ProtocolRest]; ok {
return nil
}
newProtoMap := make(map[string]chassisModel.Protocol)
for n, proto := range oldProtoMap {
if n == common.HTTPProtocol {
continue
}
newProtoMap[n] = proto
}
newProtoMap[chassisCommon.ProtocolRest] = oldProtoMap[common.HTTPProtocol]
eps, err := registry.MakeEndpointMap(newProtoMap)
if err != nil {
return err
}
for protocol, ep := range eps {
if ep.Address == "" {
port := strings.Split(newProtoMap[protocol].Listen, ":")
if len(port) == 2 { //check if port is not specified along with ip address, eventually in case port is not specified, server start will fail in subsequent processing.
registry.InstanceEndpoints[protocol] = iputil.GetLocalIP() + ":" + port[1]
}
} else {
registry.InstanceEndpoints[protocol] = ep.Address
}
}
openlog.Debug("adapt endpoints success")
return nil
}