private void decodeInstance()

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);
      }
    }
  }