From e480e002b6f23dddf4ef215021f97aeb57041012 Mon Sep 17 00:00:00 2001 From: Esther Vidal Date: Tue, 6 Mar 2018 09:52:46 +0100 Subject: [PATCH] Update versison aws java sdk Filter Class security parse error Logger problems with tags empty --- pom.xml | 13 +++- .../java/hudson/plugins/ec2/EC2Cloud.java | 61 ++++++++++++------- .../META-INF/hudson.remoting.ClassFilter | 6 ++ 3 files changed, 55 insertions(+), 25 deletions(-) create mode 100644 src/main/resources/META-INF/hudson.remoting.ClassFilter diff --git a/pom.xml b/pom.xml index c7f16a5cb..478c02710 100644 --- a/pom.xml +++ b/pom.xml @@ -114,7 +114,7 @@ THE SOFTWARE. org.jenkins-ci.plugins aws-java-sdk - 1.11.119 + 1.11.264 org.jenkins-ci.plugins @@ -184,9 +184,16 @@ THE SOFTWARE. + + false + repo.jenkins-ci.org http://repo.jenkins-ci.org/public/ + + repo.maven2 + http://central.maven.org/maven2/ + @@ -209,8 +216,8 @@ THE SOFTWARE. org.apache.maven.plugins maven-compiler-plugin - 1.7 - 1.7 + 1.8 + 1.8 diff --git a/src/main/java/hudson/plugins/ec2/EC2Cloud.java b/src/main/java/hudson/plugins/ec2/EC2Cloud.java index f292eb5db..fd22a703e 100644 --- a/src/main/java/hudson/plugins/ec2/EC2Cloud.java +++ b/src/main/java/hudson/plugins/ec2/EC2Cloud.java @@ -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) { @@ -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()) { @@ -431,35 +441,36 @@ 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 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 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++; - } } } } @@ -467,6 +478,12 @@ private int countCurrentEC2Slaves(SlaveTemplate template) throws AmazonClientExc 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 tags, String description) { for (Tag tag : tags) { if (StringUtils.equals(tag.getKey(), this.getTagKey())) { diff --git a/src/main/resources/META-INF/hudson.remoting.ClassFilter b/src/main/resources/META-INF/hudson.remoting.ClassFilter new file mode 100644 index 000000000..6af41101c --- /dev/null +++ b/src/main/resources/META-INF/hudson.remoting.ClassFilter @@ -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 \ No newline at end of file