From cae4bca11a8e79217aeb8e13f38a5bf4a7cf02a6 Mon Sep 17 00:00:00 2001 From: Joe Osborn Date: Thu, 2 Apr 2020 15:49:44 -0400 Subject: [PATCH] HTTP test fails, need to debug. Probably from hostname Signed-off-by: Joe Osborn --- .../notification/EmailUpdateHandler.java | 4 +- .../HTTPCommandUpdateHandler.java | 43 ++++++++++++++++--- .../notification/ICommandUpdateHandler.java | 7 --- .../notification/EmailHandlerTest.java | 2 +- .../notification/HTTPHandlerTest.java | 4 +- 5 files changed, 42 insertions(+), 18 deletions(-) diff --git a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/EmailUpdateHandler.java b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/EmailUpdateHandler.java index 662a36dd2..63b2988a4 100644 --- a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/EmailUpdateHandler.java +++ b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/EmailUpdateHandler.java @@ -112,8 +112,8 @@ public void setSubject(String emailSubject) { * * @param option */ - public void setOption(String option) { - this.emailAddress = option; + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; } /** diff --git a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/HTTPCommandUpdateHandler.java b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/HTTPCommandUpdateHandler.java index f3ba9460f..50774a619 100644 --- a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/HTTPCommandUpdateHandler.java +++ b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/HTTPCommandUpdateHandler.java @@ -12,6 +12,18 @@ package org.eclipse.ice.commands.notification; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.eclipse.ice.commands.CommandStatus; + /** * This class posts Command job updates to an HTTP link via POST @@ -19,10 +31,11 @@ * @author Joe Osborn * */ -public class HTTPCommandUpdateHandler implements ICommandUpdateHandler{ +public class HTTPCommandUpdateHandler implements ICommandUpdateHandler { - private String HTTPAddress = ""; + + CommandStatus status = null; /** * Default constructor @@ -30,15 +43,31 @@ public class HTTPCommandUpdateHandler implements ICommandUpdateHandler{ public HTTPCommandUpdateHandler() { } - public void setOption(String option) { - this.HTTPAddress = option; - + public void setHTTPAddress(String HTTPAddress) { + this.HTTPAddress = HTTPAddress; } - public void postUpdate() throws IOException { - + public void postStatus(CommandStatus status) { + this.status = status; } + + public void postUpdate() throws IOException { + HttpClient httpClient = HttpClients.createDefault(); + HttpPost httpPost = new HttpPost(HTTPAddress); + // Setup the parameters to be passed in the post + List params = new ArrayList(1); + params.add(new BasicNameValuePair("status", status.toString())); + httpPost.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + + // Execute and get the response + try { + HttpResponse response = httpClient.execute(httpPost); + } catch (Exception e) { + logger.info("HTTP Post was not successful.", e); + throw new IOException(); + } + } } diff --git a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/ICommandUpdateHandler.java b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/ICommandUpdateHandler.java index 4d162b347..979e8b836 100644 --- a/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/ICommandUpdateHandler.java +++ b/org.eclipse.ice.commands.notification/src/main/java/org/eclipse/ice/commands/notification/ICommandUpdateHandler.java @@ -31,13 +31,6 @@ public interface ICommandUpdateHandler { */ static final Logger logger = LoggerFactory.getLogger(ICommandUpdateHandler.class); - - /* - * Public setter that must be implemented so that the child class can obtain a - * place to send the update - */ - public void setOption(String option); - /* * This function processes the logic required to post an update about the job * for the class diff --git a/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/EmailHandlerTest.java b/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/EmailHandlerTest.java index d62057136..5b0829ea3 100644 --- a/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/EmailHandlerTest.java +++ b/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/EmailHandlerTest.java @@ -61,7 +61,7 @@ public void testEmailNotificationPostUpdate() throws IOException { EmailUpdateHandler email = new EmailUpdateHandler(); // Just send an email to itself - email.setOption("commandsapi@gmail.com"); + email.setEmailAddress("someemail@gmail.com"); email.setEmailText("This is a test email"); email.setSubject("This is a test subject"); email.postUpdate(); diff --git a/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/HTTPHandlerTest.java b/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/HTTPHandlerTest.java index 99ac12a3b..f959efa75 100644 --- a/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/HTTPHandlerTest.java +++ b/org.eclipse.ice.commands.notification/src/test/java/org/eclipse/ice/commands/notification/HTTPHandlerTest.java @@ -13,6 +13,7 @@ import java.io.IOException; +import org.eclipse.ice.commands.CommandStatus; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; @@ -60,7 +61,8 @@ public void tearDown() throws Exception { public void testHTTPNotificationPostUpdate() throws IOException { HTTPCommandUpdateHandler updater = new HTTPCommandUpdateHandler(); - updater.setOption("www.example.com"); + updater.setHTTPAddress("www.example.com"); + updater.postStatus(CommandStatus.INFOERROR); updater.postUpdate();