List of usage examples for com.amazonaws.services.ec2.model ClassicLinkInstance getInstanceId
public String getInstanceId()
The ID of the instance.
From source file:com.netflix.edda.EddaEc2Client.java
License:Apache License
public DescribeClassicLinkInstancesResult describeClassicLinkInstances( DescribeClassicLinkInstancesRequest request) { validateEmpty("Filter", request.getFilters()); TypeReference<List<ClassicLinkInstance>> ref = new TypeReference<List<ClassicLinkInstance>>() { };// w w w . ja v a 2 s . c o m String url = config.url() + "/api/v2/aws/classicLinkInstances;_expand"; try { List<ClassicLinkInstance> instances = parse(ref, doGet(url)); List<String> ids = request.getInstanceIds(); if (shouldFilter(ids)) { List<ClassicLinkInstance> is = new ArrayList<ClassicLinkInstance>(); for (ClassicLinkInstance i : instances) { if (matches(ids, i.getInstanceId())) is.add(i); } instances = is; } return new DescribeClassicLinkInstancesResult().withInstances(instances); } catch (IOException e) { throw new AmazonClientException("Faled to parse " + url, e); } }
From source file:com.netflix.spinnaker.clouddriver.aws.agent.ReconcileClassicLinkSecurityGroupsAgent.java
License:Apache License
void reconcileInstances(AmazonEC2 ec2, Map<String, String> groupNamesToIds, Collection<ClassicLinkInstance> instances) { RateLimiter apiRequestRateLimit = RateLimiter.create(5); StringBuilder report = new StringBuilder(); for (ClassicLinkInstance i : instances) { List<String> existingClassicLinkGroups = i.getGroups().stream().map(GroupIdentifier::getGroupId) .collect(Collectors.toList()); int maxNewGroups = deployDefaults.getMaxClassicLinkSecurityGroups() - existingClassicLinkGroups.size(); if (maxNewGroups > 0) { String asgName = i.getTags().stream().filter(t -> AUTOSCALING_TAG.equals(t.getKey())) .map(Tag::getValue).findFirst().orElse(null); List<String> candidateGroupNames = getSecurityGroupNames(asgName); List<String> missingGroupIds = candidateGroupNames.stream().map(groupNamesToIds::get) .filter(name -> name != null && !existingClassicLinkGroups.contains(name)) .limit(maxNewGroups).collect(Collectors.toList()); if (!missingGroupIds.isEmpty()) { List<String> groupIds = new ArrayList<>(existingClassicLinkGroups); groupIds.addAll(missingGroupIds); if (deployDefaults .getReconcileClassicLinkSecurityGroups() == AwsConfiguration.DeployDefaults.ReconcileMode.MODIFY) { apiRequestRateLimit.acquire(); try { ec2.attachClassicLinkVpc(new AttachClassicLinkVpcRequest().withVpcId(i.getVpcId()) .withGroups(groupIds).withInstanceId(i.getInstanceId())); } catch (AmazonServiceException ase) { log.warn("Failed calling attachClassicLinkVpc", ase); }//from w ww. j ava 2 s. co m } report.append("\n\t").append(Strings.padStart(i.getInstanceId(), 24, ' ')) .append(missingGroupIds); } } } if (report.length() > 0) { log.info("Attach to classicLinkVpc: account: " + account.getName() + ", region: " + region + report); } }