Skip to content

Commit

Permalink
Update versison aws java sdk
Browse files Browse the repository at this point in the history
Filter Class security parse error
Logger problems with tags empty
  • Loading branch information
esthervidal-eDo committed Mar 6, 2018
1 parent 7456613 commit e480e00
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 25 deletions.
13 changes: 10 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.119</version>
<version>1.11.264</version>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
Expand Down Expand Up @@ -184,9 +184,16 @@ THE SOFTWARE.

<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>repo.jenkins-ci.org</id>
<url>http://repo.jenkins-ci.org/public/</url>
</repository>
<repository>
<id>repo.maven2</id>
<url>http://central.maven.org/maven2/</url>
</repository>
</repositories>

<pluginRepositories>
Expand All @@ -209,8 +216,8 @@ THE SOFTWARE.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
Expand Down
61 changes: 39 additions & 22 deletions src/main/java/hudson/plugins/ec2/EC2Cloud.java
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,16 @@ public HttpResponse doProvision(@QueryParameter String template) throws ServletE
EC2AbstractSlave node = getNewOrExistingAvailableSlave(t, null, true);
if (node == null)
throw HttpResponses.error(SC_BAD_REQUEST, "Cloud or AMI instance cap would be exceeded for: " + template);
Jenkins.getInstance().addNode(node);
if(null == node.getTags() || node.getTags().isEmpty()){
LOGGER.log(Level.INFO, "doProvision.Tags don't empty . CloudName: " + node.cloudName + " InstanceId:" + node.getInstanceId()
+ " Description: " + node.getNodeDescription() + "Tags:" + node.getTags());
} else {
LOGGER.log(Level.INFO, "doProvision. CloudName: " + node.cloudName + " InstanceId:" + node.getInstanceId()
+ " Description: " + node.getNodeDescription() + "Tags:" + node.getTags());
Jenkins.getInstance().addNode(node);
}



return HttpResponses.redirectViaContextPath("/computer/" + node.getNodeName());
} catch (AmazonClientException e) {
Expand Down Expand Up @@ -392,8 +401,9 @@ private int countCurrentEC2Slaves(SlaveTemplate template) throws AmazonClientExc
+ sir.getInstanceId() + " state: " + sir.getState() + " status: " + sir.getStatus());
n++;

if (sir.getInstanceId() != null)
if (sir.getInstanceId() != null && existsTags(sir, "countCurrentEC2Slaves 1")) {
instanceIds.add(sir.getInstanceId());
}
} else {
// Canceled or otherwise dead
for (Node node : Jenkins.getInstance().getNodes()) {
Expand Down Expand Up @@ -431,42 +441,49 @@ private int countCurrentEC2Slaves(SlaveTemplate template) throws AmazonClientExc
continue;
}

if (sirSet.contains(sir))
if (sirSet.contains(sir)) {
continue;
}
if(existsTags(sir, "countCurrentEC2Slaves 2")) {
sirSet.add(sir);
if (sir.getState().equals("open") || sir.getState().equals("active")) {
if (template != null) {
List<Tag> instanceTags = sir.getTags();
for (Tag tag : instanceTags) {
if (StringUtils.equals(tag.getKey(), this.getTagKey()) && StringUtils.equals(tag.getValue(), getSlaveTypeTagValue(EC2_SLAVE_TYPE_SPOT, template.description)) && sir.getLaunchSpecification().getImageId().equals(template.getAmi())) {

sirSet.add(sir);
if (sir.getInstanceId() != null && instanceIds.contains(sir.getInstanceId()))
continue;

if (sir.getState().equals("open") || sir.getState().equals("active")) {
if (template != null) {
List<Tag> instanceTags = sir.getTags();
for (Tag tag : instanceTags) {
if (StringUtils.equals(tag.getKey(), this.getTagKey()) && StringUtils.equals(tag.getValue(), getSlaveTypeTagValue(EC2_SLAVE_TYPE_SPOT, template.description)) && sir.getLaunchSpecification().getImageId().equals(template.getAmi())) {
LOGGER.log(Level.FINE, "Spot instance request found (from node): " + sir.getSpotInstanceRequestId() + " AMI: "
+ sir.getInstanceId() + " state: " + sir.getState() + " status: " + sir.getStatus());
n++;

if (sir.getInstanceId() != null && instanceIds.contains(sir.getInstanceId()))
continue;

if (sir.getInstanceId() != null)
instanceIds.add(sir.getInstanceId());
}
}
} else {
if (!instanceIds.contains(sir.getInstanceId())) {
LOGGER.log(Level.FINE, "Spot instance request found (from node): " + sir.getSpotInstanceRequestId() + " AMI: "
+ sir.getInstanceId() + " state: " + sir.getState() + " status: " + sir.getStatus());
instanceIds.add(sir.getInstanceId());
n++;

if (sir.getInstanceId() != null)
instanceIds.add(sir.getInstanceId());
}
}
} else {
if (!instanceIds.contains(sir.getInstanceId())) {
LOGGER.log(Level.FINE, "Spot instance request found (from node): " + sir.getSpotInstanceRequestId() + " AMI: "
+ sir.getInstanceId() + " state: " + sir.getState() + " status: " + sir.getStatus());
instanceIds.add(sir.getInstanceId());
n++;
}
}
}
}

return n;
}

private boolean existsTags(SpotInstanceRequest sir, String method) {
boolean exists = null == sir.getTags() || sir.getTags().isEmpty();
if(!exists) LOGGER.log(Level.FINE,method +"Tags don't exists. InstanceId : " + sir.getInstanceId() + " state: " + sir.getState() + " status: " + sir.getStatus());
return exists;
}

private boolean isEc2ProvisionedAmiSlave(List<Tag> tags, String description) {
for (Tag tag : tags) {
if (StringUtils.equals(tag.getKey(), this.getTagKey())) {
Expand Down
6 changes: 6 additions & 0 deletions src/main/resources/META-INF/hudson.remoting.ClassFilter
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
com.amazonaws.services.ec2.model.LaunchSpecification
com.amazonaws.services.ec2.model.SpotPlacement
com.amazonaws.internal.SdkInternalList
com.amazonaws.services.ec2.model.GroupIdentifier
com.amazonaws.services.ec2.model.SpotInstanceStatus
com.amazonaws.services.ec2.model.Tag

0 comments on commit e480e00

Please sign in to comment.