package com.sequenceiq.it.spark.ambari; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import com.sequenceiq.cloudbreak.cloud.model.CloudVmMetaDataStatus; import com.sequenceiq.cloudbreak.cloud.model.InstanceStatus; import com.sequenceiq.it.spark.ITResponse; import com.sequenceiq.it.spark.ambari.model.Hosts; import com.sequenceiq.it.util.HostNameUtil; import spark.Request; import spark.Response; public class AmbariHostsResponse extends ITResponse { private Map<String, CloudVmMetaDataStatus> instanceMap; public AmbariHostsResponse(Map<String, CloudVmMetaDataStatus> instanceMap) { this.instanceMap = instanceMap; } @Override public Object handle(Request request, Response response) throws Exception { response.type("text/plain"); List<Map<String, ?>> itemList = new ArrayList<>(); for (String instanceId : instanceMap.keySet()) { CloudVmMetaDataStatus status = instanceMap.get(instanceId); if (InstanceStatus.STARTED == status.getCloudVmInstanceStatus().getStatus()) { Hosts hosts = new Hosts(Collections.singletonList(HostNameUtil.generateHostNameByIp(status.getMetaData().getPrivateIp())), "HEALTHY"); itemList.add(Collections.singletonMap("Hosts", hosts)); } } return Collections.singletonMap("items", itemList); } }