in iep-servergroups/src/main/java/com/netflix/iep/servergroups/EurekaLoader.java [121:155]
private void decodeInstance(Map<GroupId, Set<Instance>> instances, JsonParser jp) throws IOException {
InstanceInfo info = new InstanceInfo();
JsonUtils.forEachField(jp, (field, p) -> {
switch (field) {
case "asgName":
info.group = JsonUtils.stringValue(p);
break;
case "ipAddr":
info.privateIp = JsonUtils.stringValue(p);
break;
case "instanceId":
info.node = JsonUtils.stringValue(p);
break;
case "status":
info.builder.status(Instance.Status.valueOf(JsonUtils.stringValue(p)));
break;
case "dataCenterInfo":
decodeDataCenterInfo(info, p);
break;
default:
JsonUtils.skipValue(p);
break;
}
});
if (info.group != null && accounts.test(info.account)) {
Instance instance = info.toInstance();
if (instance != null) {
String platform = info.node.startsWith("i-") ? "ec2" : "titus";
GroupId id = new GroupId(platform, info.group);
instances.computeIfAbsent(id, k -> new HashSet<>()).add(instance);
}
}
}