List of usage examples for com.amazonaws.services.elasticbeanstalk.model DescribeEnvironmentResourcesRequest DescribeEnvironmentResourcesRequest
DescribeEnvironmentResourcesRequest
From source file:br.com.ingenieux.mojo.beanstalk.cmd.dns.BindDomainsCommand.java
License:Apache License
@Override protected Void executeInternal(BindDomainsContext ctx) throws Exception { Map<String, String> recordsToAssign = new LinkedHashMap<String, String>(); ctx.singleInstance = isSingleInstance(ctx.getCurEnv()); /**/*from w ww .j av a 2s. c om*/ * Step #2: Validate Parameters */ { for (String domain : ctx.getDomains()) { String key = formatDomain(domain); String value = null; /* * Handle Entries in the form <record>:<zoneid> */ if (-1 != key.indexOf(':')) { String[] pair = key.split(":", 2); key = formatDomain(pair[0]); value = strip(pair[1], "."); } recordsToAssign.put(key, value); } Validate.isTrue(recordsToAssign.size() > 0, "No Domains Supplied!"); if (isInfoEnabled()) { info("Domains to Map to Environment (cnamePrefix='%s')", ctx.getCurEnv().getCNAME()); for (Map.Entry<String, String> entry : recordsToAssign.entrySet()) { String key = entry.getKey(); String zoneId = entry.getValue(); String message = format(" * Domain: %s", key); if (null != zoneId) { message += " (and using zoneId " + zoneId + ")"; } info(message); } } } /** * Step #3: Lookup Domains on Route53 */ Map<String, HostedZone> hostedZoneMapping = new LinkedHashMap<String, HostedZone>(); { Set<String> unresolvedDomains = new LinkedHashSet<String>(); for (Map.Entry<String, String> entry : recordsToAssign.entrySet()) { if (null != entry.getValue()) { continue; } unresolvedDomains.add(entry.getKey()); } for (HostedZone hostedZone : r53.listHostedZones().getHostedZones()) { String id = hostedZone.getId(); String name = hostedZone.getName(); hostedZoneMapping.put(id, hostedZone); if (unresolvedDomains.contains(name)) { if (isInfoEnabled()) { info("Mapping Domain %s to R53 Zone Id %s", name, id); } recordsToAssign.put(name, id); unresolvedDomains.remove(name); } } Validate.isTrue(unresolvedDomains.isEmpty(), "Domains not resolved: " + join(unresolvedDomains, "; ")); } /** * Step #4: Domain Validation */ { for (Map.Entry<String, String> entry : recordsToAssign.entrySet()) { String record = entry.getKey(); String zoneId = entry.getValue(); HostedZone hostedZone = hostedZoneMapping.get(zoneId); Validate.notNull(hostedZone, format("Unknown Hosted Zone Id: %s for Record: %s", zoneId, record)); Validate.isTrue(record.endsWith(hostedZone.getName()), format( "Record %s does not map to zoneId %s (domain: %s)", record, zoneId, hostedZone.getName())); } } /** * Step #5: Get ELB Hosted Zone Id - if appliable */ if (!ctx.singleInstance) { String loadBalancerName = parentMojo.getService() .describeEnvironmentResources(new DescribeEnvironmentResourcesRequest() .withEnvironmentId(ctx.getCurEnv().getEnvironmentId())) .getEnvironmentResources().getLoadBalancers().get(0).getName(); DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest(asList(loadBalancerName)); List<LoadBalancerDescription> loadBalancers = elb.describeLoadBalancers(req) .getLoadBalancerDescriptions(); Validate.isTrue(1 == loadBalancers.size(), "Unexpected number of Load Balancers returned"); ctx.elbHostedZoneId = loadBalancers.get(0).getCanonicalHostedZoneNameID(); if (isInfoEnabled()) { info(format("Using ELB Canonical Hosted Zone Name Id %s", ctx.elbHostedZoneId)); } } /** * Step #6: Apply Change Batch on Each Domain */ for (Map.Entry<String, String> recordEntry : recordsToAssign.entrySet()) { assignDomain(ctx, recordEntry.getKey(), recordEntry.getValue()); } return null; }
From source file:br.com.ingenieux.mojo.beanstalk.env.DescribeEnvironmentResourcesMojo.java
License:Apache License
@Override protected Object executeInternal() throws MojoExecutionException, MojoFailureException { return getService().describeEnvironmentResources(new DescribeEnvironmentResourcesRequest() .withEnvironmentId(curEnv.getEnvironmentId()).withEnvironmentName(curEnv.getEnvironmentName())); }
From source file:br.com.ingenieux.mojo.beanstalk.env.DumpInstancesMojo.java
License:Apache License
@Override protected Object executeInternal() throws Exception { AmazonEC2 ec2 = clientFactory.getService(AmazonEC2Client.class); DescribeEnvironmentResourcesResult envResources = getService().describeEnvironmentResources( new DescribeEnvironmentResourcesRequest().withEnvironmentId(curEnv.getEnvironmentId()) .withEnvironmentName(curEnv.getEnvironmentName())); List<String> instanceIds = new ArrayList<String>(); for (Instance i : envResources.getEnvironmentResources().getInstances()) { instanceIds.add(i.getId());/* w w w.j a v a 2 s .co m*/ } DescribeInstancesResult ec2Instances = ec2 .describeInstances(new DescribeInstancesRequest().withInstanceIds(instanceIds)); PrintStream printStream = null; if (null != outputFile) { printStream = new PrintStream(outputFile); } for (Reservation r : ec2Instances.getReservations()) { for (com.amazonaws.services.ec2.model.Instance i : r.getInstances()) { String ipAddress = dumpPrivateAddresses ? i.getPrivateIpAddress() : StringUtils.defaultString(i.getPublicIpAddress(), i.getPrivateDnsName()); String instanceId = i.getInstanceId(); if (null != printStream) { printStream.println(ipAddress + " # " + instanceId); } else { getLog().info(" * " + instanceId + ": " + ipAddress); } } } if (null != printStream) { printStream.close(); } return null; }
From source file:org.cloudml.connectors.BeanstalkConnector.java
License:Open Source License
public Collection<String> getEnvIPs(String envName, int timeout) { DescribeEnvironmentResourcesRequest request = new DescribeEnvironmentResourcesRequest() .withEnvironmentName(envName); List<Instance> instances = null; System.out.print("Waiting for environment ips"); while (timeout-- > 0) { try {//www . ja v a 2 s .co m Thread.sleep(1000); } catch (InterruptedException ex) { Logger.getLogger(BeanstalkConnector.class.getName()).log(Level.SEVERE, null, ex); } System.out.print("-"); DescribeEnvironmentResourcesResult res = beanstalkClient.describeEnvironmentResources(request); instances = res.getEnvironmentResources().getInstances(); if (instances.size() == 0) continue; AmazonEC2Client ec2 = new AmazonEC2Client(awsCredentials); ec2.setEndpoint(beanstalkEndpoint.replace("elasticbeanstalk", "ec2")); List<String> instanceIds = new ArrayList<String>(); for (Instance instance : instances) { instanceIds.add(instance.getId()); } List<String> ips = new ArrayList<String>(); DescribeInstancesRequest desins = new DescribeInstancesRequest().withInstanceIds(instanceIds); DescribeInstancesResult desinres = ec2.describeInstances(desins); for (Reservation reservation : desinres.getReservations()) { for (com.amazonaws.services.ec2.model.Instance ins : reservation.getInstances()) { String ip = ins.getPublicIpAddress(); if (ip != null && ip.length() > 0) ips.add(ip); } } if (ips.size() > 0) return ips; } return Collections.EMPTY_LIST; }