Skip to content

Instantly share code, notes, and snippets.

@brianm
Created July 11, 2011 19:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brianm/1076557 to your computer and use it in GitHub Desktop.
Save brianm/1076557 to your computer and use it in GitHub Desktop.
package com.ning.atlas.aws;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.elasticloadbalancing.AmazonElasticLoadBalancingClient;
import com.amazonaws.services.elasticloadbalancing.model.Instance;
import com.amazonaws.services.elasticloadbalancing.model.RegisterInstancesWithLoadBalancerRequest;
import com.ning.atlas.Installer;
import com.ning.atlas.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
import static java.util.Arrays.asList;
public class ELBInstaller implements Installer
{
private final static Logger logger = LoggerFactory.getLogger(EC2Provisioner.class);
private final AmazonElasticLoadBalancingClient elb;
public ELBInstaller(Map<String, String> attributes)
{
BasicAWSCredentials credentials = new BasicAWSCredentials(attributes.get("access_key"),
attributes.get("secret_key"));
elb = new AmazonElasticLoadBalancingClient(credentials);
}
@Override
public Server install(Server server, String fragment)
{
EC2Provisioner.EC2Server s = (EC2Provisioner.EC2Server) server;
Instance i = new Instance(s.getInstanceId());
RegisterInstancesWithLoadBalancerRequest req = new RegisterInstancesWithLoadBalancerRequest(fragment,
asList(i));
elb.registerInstancesWithLoadBalancer(req);
logger.debug("added {} to elb group {}", s.getExternalIpAddress(), fragment);
return s;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment