From 5310fb5ee8caf97dbc7279de3db80eab8d863ec6 Mon Sep 17 00:00:00 2001 From: "Barbara B. Frosik" <bfrosik@aps.anl.gov> Date: Tue, 25 Aug 2015 21:00:15 +0000 Subject: [PATCH] updated experiment sync tools --- .../resources/config.properties | 13 +--- .../gov/anl/dm/esafsync/ExperimentList.java | 15 ++-- .../src/gov/anl/dm/esafsync/Gui.java | 6 +- .../src/gov/anl/dm/esafsync/LoginWindow.java | 2 +- .../gov/anl/dm/esafsync/OracleConnection.java | 5 +- .../serviceconn/DaqServiceConnection.java | 7 +- .../serviceconn/ServiceConnection.java | 72 ++++++++++--------- .../anl/dm/esafsync/serviceconn/Session.java | 1 + .../serviceconn/StorageServiceConnection.java | 7 ++ 9 files changed, 72 insertions(+), 56 deletions(-) diff --git a/tools/ExperimentSynchronizer/resources/config.properties b/tools/ExperimentSynchronizer/resources/config.properties index 7e29e826..6a09d4ae 100644 --- a/tools/ExperimentSynchronizer/resources/config.properties +++ b/tools/ExperimentSynchronizer/resources/config.properties @@ -1,11 +1,4 @@ -### -### Oracle database settings -### -oracle.database.connection = jdbc:oracle:thin:@ra.aps.anl.gov:1527:aps1 -#oracle.database.username = -#oracle.database.password = -oracle.database.table = DCC.FL$03_BL_APV_VIEW_V2 - -#dm.storageServ.connection = http://xstor-devel.xray.aps.anl.gov:22236/dm -dm.storageServ.connection = http://localhost:22236/dm +dm.storageServ.connection = https://xstor-devel.xray.aps.anl.gov:22236/dm dm.daqServ.connection = http://localhost:33336/dm +dm.truststore = /etc/pki/ca-trust/extracted/java/cacerts + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/ExperimentList.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/ExperimentList.java index c65538bd..1fb6c7b1 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/ExperimentList.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/ExperimentList.java @@ -2,7 +2,6 @@ package gov.anl.dm.esafsync; import gov.anl.dm.esafsync.serviceconn.DaqServiceConnection; import gov.anl.dm.esafsync.serviceconn.ServiceConnection; -import gov.anl.dm.esafsync.serviceconn.ServiceConnection.ServiceConnectionStatus; import gov.anl.dm.esafsync.serviceconn.StorageServiceConnection; import java.awt.BorderLayout; @@ -184,6 +183,7 @@ class ExperimentList extends JFrame } } + public static final String EXPERIMENT_PREFIX = "esaf"; StorageServiceConnection sconnection; private JTable table = null; private ExperimentTableModel tableModel = null; @@ -274,7 +274,7 @@ class ExperimentList extends JFrame { int[] selection = table.getSelectedRows(); for (int i = 0; i < selection.length; i++) { - String experimentName = (String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); + String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); String description = (String)table.getModel().getValueAt(selection[i], Column.DESCRIPTION.ordinal()); if (sconnection.addExperiment(experimentName, description) != ServiceConnection.ServiceConnectionStatus.SUCCESS) { continue; @@ -291,9 +291,9 @@ class ExperimentList extends JFrame public void actionPerformed(ActionEvent e) { int[] selection = table.getSelectedRows(); - if ((selection.length > 0) && (dconnection.init() == ServiceConnectionStatus.SUCCESS) && (dconnection.login() == ServiceConnectionStatus.SUCCESS)) { +// if ((selection.length > 0) && (dconnection.init() == ServiceConnectionStatus.SUCCESS) && (dconnection.login() == ServiceConnectionStatus.SUCCESS)) { for (int i = 0; i < selection.length; i++) { - String experimentName = (String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); + String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); String description = (String)table.getModel().getValueAt(selection[i], Column.DESCRIPTION.ordinal()); if (sconnection.addExperiment(experimentName, description) != ServiceConnection.ServiceConnectionStatus.SUCCESS) { continue; @@ -302,10 +302,12 @@ class ExperimentList extends JFrame // addRole((String)table.getModel().getValueAt(selection[i], Column.PI.ordinal()), experimentName, Role.PI); addRole((String)table.getModel().getValueAt(selection[i], Column.USER.ordinal()), experimentName, Role.USER); if (sconnection.startExperiment(experimentName) == ServiceConnection.ServiceConnectionStatus.SUCCESS) { - dconnection.startDaq(experimentName, experimentName); +// dconnection.startDaq(experimentName, experimentName); + } else { + System.out.println("didn't start"); } } - } +// } table.clearSelection(); } }); @@ -322,3 +324,4 @@ class ExperimentList extends JFrame } } + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/Gui.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/Gui.java index acfa7e43..9e09188b 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/Gui.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/Gui.java @@ -33,7 +33,9 @@ class Gui } private Gui(Properties configProperties) { - OracleConnection oconnection = new OracleConnection(); + System.setProperty("javax.net.ssl.trustStore", configProperties.getProperty("dm.truststore")); + + OracleConnection oconnection = new OracleConnection(); try { oconnection.connect(configProperties); } catch (SQLException e1) { @@ -89,4 +91,4 @@ class Gui System.exit(-1); } } -} \ No newline at end of file +} diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/LoginWindow.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/LoginWindow.java index 0dd93486..ba6b8078 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/LoginWindow.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/LoginWindow.java @@ -99,4 +99,4 @@ public final class LoginWindow extends JFrame { } }); } -} \ No newline at end of file +} diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/OracleConnection.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/OracleConnection.java index 1de55e4a..f5d7e0e7 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/OracleConnection.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/OracleConnection.java @@ -15,9 +15,7 @@ public class OracleConnection { void connect(Properties config) throws SQLException { DriverManager.registerDriver(new oracle.jdbc.OracleDriver()); connection = DriverManager.getConnection( - config.getProperty("oracle.database.connection"), -// config.getProperty("oracle.database.username"), -// config.getProperty("oracle.database.password")); + "jdbc:oracle:thin:@ra.aps.anl.gov:1527:aps1", "glob_conn", "ur2ytkownicy2u"); } @@ -50,3 +48,4 @@ public class OracleConnection { } } } + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java index 1975ee37..0c4da47e 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/DaqServiceConnection.java @@ -10,6 +10,10 @@ public class DaqServiceConnection extends ServiceConnection{ static final String DAQ_DATA_DIRECTORY = "dataDirectory"; } + class StorageServUrl { + static final String START_DAQ = "/experiments/startDaq"; + } + private final String url; public DaqServiceConnection(String url) { @@ -24,7 +28,8 @@ public class DaqServiceConnection extends ServiceConnection{ Map<String, String> data = new HashMap<>(); data.put(Keyword.DAQ_EXPERIMENT_NAME, experimentName); data.put(Keyword.DAQ_DATA_DIRECTORY, directory); - invokeSessionPostRequest(StorageServUrl.EXPERIMENT, data); + invokeSessionPostRequest(StorageServUrl.START_DAQ, data); } } + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/ServiceConnection.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/ServiceConnection.java index 6eb7b468..b8d42ba0 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/ServiceConnection.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/ServiceConnection.java @@ -6,7 +6,6 @@ import java.io.IOException; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.ConnectException; -import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; @@ -15,6 +14,7 @@ import java.util.Base64; import java.util.HashMap; import java.util.Map; +import javax.net.ssl.HttpsURLConnection; import javax.swing.JOptionPane; public class ServiceConnection { @@ -35,10 +35,6 @@ public class ServiceConnection { class StorageServUrl { static final String LOGIN_REQUEST = "/login"; - static final String EXPERIMENT = "/experiments"; - static final String EXPERIMENT_USER = "/usersByExperiment"; - static final String START_EXPERIMENT = "/experiments/start"; - static final String START_DAQ = "/experiments/startDaq"; } class DmStatus { @@ -119,14 +115,17 @@ public class ServiceConnection { JOptionPane.showMessageDialog(null,"Unsupported service protocol specified in " + serviceUrl, "Error",JOptionPane.ERROR_MESSAGE); return ServiceConnectionStatus.ERROR; } - return ServiceConnectionStatus.SUCCESS; + +// System.setProperty("javax.net.ssl.trustStore", "/etc/pki/ca-trust/extracted/java/cacerts"); + + return ServiceConnectionStatus.SUCCESS; } private URL getServiceUrl() { return serviceUrl; } - private int checkHttpResponse(HttpURLConnection connection) { + private int checkHttpResponse(HttpsURLConnection connection) { int code = 0; String exceptionType = connection.getHeaderField(DmHttpHeaders.DM_EXCEPTION_TYPE_HTTP_HEADER); if (exceptionType != null) { @@ -174,7 +173,7 @@ public class ServiceConnection { } } - private void updateSessionCookie(HttpURLConnection connection) { + private void updateSessionCookie(HttpsURLConnection connection) { String cookie = connection.getHeaderField(DmHttpHeaders.DM_SET_COOKIE_HEADER); if (cookie != null) { session.setCookie(cookie); @@ -185,20 +184,21 @@ public class ServiceConnection { } } - private static int sendPostData(Map<String, String> data, HttpURLConnection connection) { + private static int sendPostData(Map<String, String> data, HttpsURLConnection connection) { String postData = preparePostData(data); try (DataOutputStream dos = new DataOutputStream(connection.getOutputStream())) { dos.writeBytes(postData); dos.flush(); return ServiceConnectionStatus.SUCCESS; } catch (IOException ex) { + ex.printStackTrace(); JOptionPane.showMessageDialog(null, ex.getMessage()); JOptionPane.showMessageDialog(null, "misconfigured service or closed ", "Error",JOptionPane.ERROR_MESSAGE); return ServiceConnectionStatus.CONNECTION_ERROR; } } - private static String readHttpResponse(HttpURLConnection connection) { + private static String readHttpResponse(HttpsURLConnection connection) { try { BufferedReader br = new BufferedReader(new InputStreamReader( (connection.getInputStream()))); @@ -215,13 +215,13 @@ public class ServiceConnection { } } - private static void setCookieRequestHeader(HttpURLConnection connection, String sessionCookie) { + private static void setCookieRequestHeader(HttpsURLConnection connection, String sessionCookie) { if (sessionCookie != null) { connection.setRequestProperty("Cookie", sessionCookie); } } - private static int setPostRequestHeaders(HttpURLConnection connection, String sessionCookie) { + private static int setPostRequestHeaders(HttpsURLConnection connection, String sessionCookie) { int resp = setPostRequestHeaders(connection); if (resp != ServiceConnectionStatus.SUCCESS) { return resp; @@ -230,7 +230,7 @@ public class ServiceConnection { return resp; } - private static int setPostRequestHeaders(HttpURLConnection connection) { + private static int setPostRequestHeaders(HttpsURLConnection connection) { try { connection.setDoOutput(true); connection.setRequestMethod("POST"); @@ -244,11 +244,11 @@ public class ServiceConnection { protected int invokeSessionPostRequest(String requestUrl, Map<String, String> data) { String urlString = getFullRequestUrl(requestUrl); - HttpURLConnection connection = null; + HttpsURLConnection connection = null; try { String sessionCookie = session.verifyCookie(); URL url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); + connection = (HttpsURLConnection) url.openConnection(); int resp = setPostRequestHeaders(connection, sessionCookie); if ( resp != ServiceConnectionStatus.SUCCESS) { @@ -274,7 +274,7 @@ public class ServiceConnection { } } - private static int setPutRequestHeaders(HttpURLConnection connection, String sessionCookie) { + private static int setPutRequestHeaders(HttpsURLConnection connection, String sessionCookie) { int resp = setPutRequestHeaders(connection); if ( resp != ServiceConnectionStatus.SUCCESS) { return resp; @@ -283,7 +283,7 @@ public class ServiceConnection { return resp; } - private static int setPutRequestHeaders(HttpURLConnection connection) { + private static int setPutRequestHeaders(HttpsURLConnection connection) { try { connection.setDoOutput(true); connection.setRequestMethod("PUT"); @@ -297,11 +297,11 @@ public class ServiceConnection { protected int invokeSessionPutRequest(String requestUrl, Map<String, String> data) { String urlString = getFullRequestUrl(requestUrl); - HttpURLConnection connection = null; + HttpsURLConnection connection = null; try { String sessionCookie = session.verifyCookie(); URL url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); + connection = (HttpsURLConnection) url.openConnection(); int resp = setPutRequestHeaders(connection, sessionCookie); if ( resp != ServiceConnectionStatus.SUCCESS) { @@ -337,7 +337,7 @@ public class ServiceConnection { // return session.verifyCookie(); // } // -// private static String getResponseHeaders(HttpURLConnection connection) { +// private static String getResponseHeaders(HttpsURLConnection connection) { // String headerString = ""; // Map<String, List<String>> headerMap = connection.getHeaderFields(); // for (String key : headerMap.keySet()) { @@ -349,11 +349,11 @@ public class ServiceConnection { // // private String invokeSessionGetRequest(String requestUrl) { // String urlString = getFullRequestUrl(requestUrl); -// HttpURLConnection connection = null; +// HttpsURLConnection connection = null; // try { // String sessionCookie = session.verifyCookie(); // URL url = new URL(urlString); -// connection = (HttpURLConnection) url.openConnection(); +// connection = (HttpsURLConnection) url.openConnection(); // // setGetRequestHeaders(connection, sessionCookie); // updateSessionCookie(connection); @@ -373,10 +373,10 @@ public class ServiceConnection { // // private String invokeGetRequest(String requestUrl) { // String urlString = getFullRequestUrl(requestUrl); -// HttpURLConnection connection = null; +// HttpsURLConnection connection = null; // try { // URL url = new URL(urlString); -// connection = (HttpURLConnection) url.openConnection(); +// connection = (HttpsURLConnection) url.openConnection(); // updateSessionCookie(connection); // checkHttpResponse(connection); // return readHttpResponse(connection); @@ -394,11 +394,11 @@ public class ServiceConnection { // // private String invokeSessionDeleteRequest(String requestUrl) { // String urlString = getFullRequestUrl(requestUrl); -// HttpURLConnection connection = null; +// HttpsURLConnection connection = null; // try { // String sessionCookie = session.verifyCookie(); // URL url = new URL(urlString); -// connection = (HttpURLConnection) url.openConnection(); +// connection = (HttpsURLConnection) url.openConnection(); // // setDeleteRequestHeaders(connection, sessionCookie); // updateSessionCookie(connection); @@ -416,12 +416,12 @@ public class ServiceConnection { // } // } // -// private static void setGetRequestHeaders(HttpURLConnection connection, String sessionCookie) { +// private static void setGetRequestHeaders(HttpsURLConnection connection, String sessionCookie) { // setGetRequestHeaders(connection); // setCookieRequestHeader(connection, sessionCookie); // } // -// private static void setGetRequestHeaders(HttpURLConnection connection) { +// private static void setGetRequestHeaders(HttpsURLConnection connection) { // try { // connection.setRequestMethod("GET"); // } catch (ProtocolException ex) { @@ -429,12 +429,12 @@ public class ServiceConnection { // } // } // -// private static void setDeleteRequestHeaders(HttpURLConnection connection, String sessionCookie) { +// private static void setDeleteRequestHeaders(HttpsURLConnection connection, String sessionCookie) { // setDeleteRequestHeaders(connection); // setCookieRequestHeader(connection, sessionCookie); // } // -// private static void setDeleteRequestHeaders(HttpURLConnection connection) { +// private static void setDeleteRequestHeaders(HttpsURLConnection connection) { // try { // connection.setRequestMethod("DELETE"); // } catch (ProtocolException ex) { @@ -443,7 +443,7 @@ public class ServiceConnection { // } // // -// private void getData(HttpURLConnection connection) { +// private void getData(HttpsURLConnection connection) { // BufferedReader in; // try { // in = new BufferedReader( @@ -469,11 +469,11 @@ public class ServiceConnection { } private final int login(String username, String password) { - HttpURLConnection connection = null; + HttpsURLConnection connection = null; try { String urlString = getFullRequestUrl(StorageServUrl.LOGIN_REQUEST); URL url = new URL(urlString); - connection = (HttpURLConnection) url.openConnection(); + connection = (HttpsURLConnection) url.openConnection(); setPostRequestHeaders(connection); HashMap<String, String> loginData = new HashMap<>(); loginData.put(Keyword.USERNAME, username); @@ -481,10 +481,12 @@ public class ServiceConnection { int resp = sendPostData(loginData, connection); if (resp != ServiceConnectionStatus.SUCCESS) { + System.out.println("here a"); return resp; } resp = checkHttpResponse(connection); if (resp != ServiceConnectionStatus.SUCCESS) { + System.out.println("here b"); return resp; } session.setUsername(username); @@ -492,10 +494,13 @@ public class ServiceConnection { updateSessionCookie(connection); return ServiceConnectionStatus.SUCCESS; } catch (ConnectException ex) { + System.out.println("here 1"); String errorMsg = "Cannot connect to " + getServiceUrl(); JOptionPane.showMessageDialog(null,errorMsg, "Error",JOptionPane.ERROR_MESSAGE); return ServiceConnectionStatus.ERROR; } catch (Exception ex) { + ex.printStackTrace(); + System.out.println("here 2"); JOptionPane.showMessageDialog(null, ex.getMessage()); return ServiceConnectionStatus.ERROR; } finally { @@ -510,3 +515,4 @@ public class ServiceConnection { } } + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/Session.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/Session.java index 2b72e2c3..3934f8df 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/Session.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/Session.java @@ -129,3 +129,4 @@ public class Session implements Serializable { return result; } } + diff --git a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/StorageServiceConnection.java b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/StorageServiceConnection.java index 915bae4f..2e8bf06c 100644 --- a/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/StorageServiceConnection.java +++ b/tools/ExperimentSynchronizer/src/gov/anl/dm/esafsync/serviceconn/StorageServiceConnection.java @@ -13,6 +13,12 @@ public class StorageServiceConnection extends ServiceConnection{ static final String EXPERIMENT_TYPE_ID = "experimentTypeId"; } + class StorageServUrl { + static final String EXPERIMENT = "/experiments"; + static final String EXPERIMENT_USER = "/usersByExperiment"; + static final String START_EXPERIMENT = "/experiments/start"; + } + public int addExperiment(String name, String description) { Map<String, String> data = new HashMap<>(); if (name == null) { @@ -44,3 +50,4 @@ public class StorageServiceConnection extends ServiceConnection{ return invokeSessionPutRequest(StorageServUrl.START_EXPERIMENT, data); } } + -- GitLab