package core.aws.remote.elb; import com.amazonaws.services.elasticloadbalancing.model.LoadBalancerDescription; import core.aws.client.AWS; import core.aws.env.Environment; import core.aws.resource.Resources; import core.aws.resource.elb.ELB; import java.util.List; /** * @author neo */ public class ELBLoader { private final Resources resources; private final Environment env; public ELBLoader(Resources resources, Environment env) { this.resources = resources; this.env = env; } public void load() { List<LoadBalancerDescription> remoteELBs = AWS.elb.listELBs(); for (LoadBalancerDescription remoteELB : remoteELBs) { String elbName = remoteELB.getLoadBalancerName(); String prefix = env.name + "-"; if (elbName.startsWith(prefix)) { String resourceId = elbName.substring(prefix.length()); ELB elb = resources.find(ELB.class, resourceId).orElseGet(() -> resources.add(new ELB(resourceId))); elb.name = elbName; elb.remoteELB = remoteELB; elb.foundInRemote(); } } } }