From 34e0006ae757776ecef3c3ea9c4996a5229013d3 Mon Sep 17 00:00:00 2001 From: Michael logan Date: Thu, 12 Nov 2020 14:47:36 -0500 Subject: [PATCH] Check if running in AWS before initializing --- .../com/meltmedia/jgroups/aws/AWS_PING.java | 44 +++++++++++-------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/meltmedia/jgroups/aws/AWS_PING.java b/src/main/java/com/meltmedia/jgroups/aws/AWS_PING.java index c39546b..35fc1ff 100644 --- a/src/main/java/com/meltmedia/jgroups/aws/AWS_PING.java +++ b/src/main/java/com/meltmedia/jgroups/aws/AWS_PING.java @@ -15,10 +15,13 @@ */ package com.meltmedia.jgroups.aws; +import com.amazonaws.regions.RegionUtils; +import com.amazonaws.regions.Regions; import com.amazonaws.services.ec2.AmazonEC2; import com.amazonaws.services.ec2.model.DescribeInstancesRequest; import com.amazonaws.services.ec2.model.Filter; import com.amazonaws.services.ec2.model.Instance; +import com.amazonaws.util.EC2MetadataUtils; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.jgroups.Address; @@ -174,27 +177,32 @@ public class AWS_PING extends Discovery { public void init() throws Exception { super.init(); - //get the instance identity - try (CloseableHttpClient client = HttpClients.createDefault()) { - this.instanceIdentity = InstanceIdentity.getIdentity(client); - } + if(Regions.getCurrentRegion() != null) { + //get the instance identity + try (CloseableHttpClient client = HttpClients.createDefault()) { + this.instanceIdentity = InstanceIdentity.getIdentity(client); + } - //setup ec2 client - this.ec2 = EC2Factory.create( - instanceIdentity, - access_key, - secret_key, - credentials_provider_class, - new CredentialsProviderFactory(), - log_aws_error_messages); + //setup ec2 client + this.ec2 = EC2Factory.create( + instanceIdentity, + access_key, + secret_key, + credentials_provider_class, + new CredentialsProviderFactory(), + log_aws_error_messages); - this.ipAddressUtils = new IPAddressUtils(port_number, port_range); - this.tagUtils = new TagsUtils(ec2, instanceIdentity, tags).validateTags(); - this.filterUtils = new FilterUtils(filters, tagUtils); + this.ipAddressUtils = new IPAddressUtils(port_number, port_range); + this.tagUtils = new TagsUtils(ec2, instanceIdentity, tags).validateTags(); + this.filterUtils = new FilterUtils(filters, tagUtils); - log.info("Configured for instance: " + instanceIdentity.instanceId); - filterUtils.getAwsFilters().ifPresent(f -> log.info("Configured with filters [%s]", f)); - tagUtils.getAwsTagNames().ifPresent(t -> log.info("Configured with tags [%s]", t)); + log.info("Configured for instance: " + instanceIdentity.instanceId); + filterUtils.getAwsFilters().ifPresent(f -> log.info("Configured with filters [%s]", f)); + tagUtils.getAwsTagNames().ifPresent(t -> log.info("Configured with tags [%s]", t)); + } + else { + log.debug("Could not determine AWS Region. Assuming instance is not running in AWS..."); + } } /**