From f547a01c8f632b741f62d7a2061d1e836b0960e5 Mon Sep 17 00:00:00 2001 From: chrismcg14 Date: Tue, 10 May 2022 09:37:58 -0600 Subject: [PATCH 1/2] add an if statement checking if endpoints is set. If not, enter else with former behavior --- .../resources/ec2/InstanceToNodeMapper.java | 58 +++++++++++-------- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java b/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java index 66dd3ef1..28044d34 100644 --- a/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java +++ b/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java @@ -104,42 +104,50 @@ public NodeSetImpl performQuery() { } } - if (getEndpoint().equals("ALL_REGIONS")) { + if(getEndpoint() != null) { + if (getEndpoint().equals("ALL_REGIONS")) { - //Retrieve dynamic list of EC2 regions from AWS - DescribeRegionsResult regionsResult = ec2.describeRegions(); - for (Region region : regionsResult.getRegions()) { - regions.add(region.getEndpoint()); - } + //Retrieve dynamic list of EC2 regions from AWS + DescribeRegionsResult regionsResult = ec2.describeRegions(); + for (Region region : regionsResult.getRegions()) { + regions.add(region.getEndpoint()); + } - } else { - try { - //Use comma-separated list of region supplied by user - regions.addAll(Arrays.asList(getEndpoint().replaceAll("\\s+", "").split(","))); - } catch (NullPointerException e) { - throw new IllegalArgumentException("Failed to parse endpoint: Region cannot be empty"); + } else { + try { + //Use comma-separated list of region supplied by user + regions.addAll(Arrays.asList(getEndpoint().replaceAll("\\s+", "").split(","))); + } catch (NullPointerException e) { + throw new IllegalArgumentException("Failed to parse endpoint: Region cannot be empty"); + } } - } - for (String region : regions) { + for (String region : regions) { - ec2.setEndpoint(region); - zones = ec2.describeAvailabilityZones(); - final ArrayList filters = buildFilters(); + ec2.setEndpoint(region); + zones = ec2.describeAvailabilityZones(); + final ArrayList filters = buildFilters(); - final Set newInstances = addExtraMappingAttribute(query(ec2, new DescribeInstancesRequest().withFilters(filters).withMaxResults(maxResults))); + final Set newInstances = addExtraMappingAttribute(query(ec2, new DescribeInstancesRequest().withFilters(filters).withMaxResults(maxResults))); - if (!newInstances.isEmpty() && newInstances !=null) { - instances.addAll(newInstances); - } + if (!newInstances.isEmpty() && newInstances != null) { + instances.addAll(newInstances); + } - try { - Thread.sleep(100); - } catch(InterruptedException ex) { - Thread.currentThread().interrupt(); + try { + Thread.sleep(100); + } catch (InterruptedException ex) { + Thread.currentThread().interrupt(); + } } } + else{ + zones = ec2.describeAvailabilityZones(); + + final ArrayList filters = buildFilters(); + instances = addExtraMappingAttribute(query(ec2, new DescribeInstancesRequest().withFilters(filters).withMaxResults(maxResults))); + } mapInstances(nodeSet, instances); return nodeSet; } From 14788b674fc9dc0f99494f3e0a49fa30a61ae887 Mon Sep 17 00:00:00 2001 From: chrismcg14 Date: Tue, 10 May 2022 10:49:36 -0600 Subject: [PATCH 2/2] add comment to clarify code logic for readders --- .../rundeck/plugin/resources/ec2/InstanceToNodeMapper.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java b/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java index 28044d34..36f30bd3 100644 --- a/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java +++ b/src/main/java/com/dtolabs/rundeck/plugin/resources/ec2/InstanceToNodeMapper.java @@ -146,6 +146,8 @@ public NodeSetImpl performQuery() { final ArrayList filters = buildFilters(); + //use ec2 object without defining endpoint and sdk will assign default + instances = addExtraMappingAttribute(query(ec2, new DescribeInstancesRequest().withFilters(filters).withMaxResults(maxResults))); } mapInstances(nodeSet, instances);