Skip to content
Snippets Groups Projects
Commit 2aaef29d authored by Barbara B. Frosik's avatar Barbara B. Frosik
Browse files

modified to add another daq connection and modified dir structure

parent 0fb7b60e
No related branches found
No related tags found
No related merge requests found
...@@ -9,7 +9,7 @@ import java.awt.Color; ...@@ -9,7 +9,7 @@ import java.awt.Color;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.sql.SQLException; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -189,7 +189,7 @@ class ExperimentList extends JFrame ...@@ -189,7 +189,7 @@ class ExperimentList extends JFrame
private ExperimentTableModel tableModel = null; private ExperimentTableModel tableModel = null;
private JScrollPane scrollPane; private JScrollPane scrollPane;
ExperimentList(final String sector, final OracleConnection oconnection, final StorageServiceConnection sconnection, final DaqServiceConnection dconnection) { ExperimentList(final String sector, final OracleConnection oconnection, final StorageServiceConnection sconnection, final DaqServiceConnection dconnection, final DaqServiceConnection drconnection) {
this.sconnection = sconnection; this.sconnection = sconnection;
setTitle("Experiment Import"); setTitle("Experiment Import");
setSize(1000, 500); setSize(1000, 500);
...@@ -317,19 +317,11 @@ class ExperimentList extends JFrame ...@@ -317,19 +317,11 @@ class ExperimentList extends JFrame
{ {
int[] selection = table.getSelectedRows(); int[] selection = table.getSelectedRows();
if (selection.length > 0) { if (selection.length > 0) {
if (dconnection.isSessionValid()) { if (dconnection.isSessionValid() && ((drconnection == null) || drconnection.isSessionValid())) {
importAndStartExperiments(selection, dconnection); importAndStartExperiments(selection, dconnection, drconnection);
} } else {
else if (dconnection.isInitialized()) {
JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.", JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.",
"Info",JOptionPane.WARNING_MESSAGE); "Info",JOptionPane.WARNING_MESSAGE);
}
else if ((dconnection.init() == ServiceConnection.ServiceConnectionStatus.SUCCESS)
&& (dconnection.login() == ServiceConnection.ServiceConnectionStatus.SUCCESS)) {
importAndStartExperiments(selection, dconnection);
} else {
JOptionPane.showMessageDialog(null,"Check Data acquisition service configuration, or invalid credentials.",
"Info",JOptionPane.WARNING_MESSAGE);
} }
} }
} }
...@@ -340,19 +332,11 @@ class ExperimentList extends JFrame ...@@ -340,19 +332,11 @@ class ExperimentList extends JFrame
{ {
int[] selection = table.getSelectedRows(); int[] selection = table.getSelectedRows();
if (selection.length > 0) { if (selection.length > 0) {
if (dconnection.isSessionValid()) { if (dconnection.isSessionValid() && ((drconnection == null) || drconnection.isSessionValid())) {
startExperiments(selection, dconnection); startExperiments(selection, dconnection, drconnection);
} } else {
else if (dconnection.isInitialized()) {
JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.", JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.",
"Info",JOptionPane.WARNING_MESSAGE); "Info",JOptionPane.WARNING_MESSAGE);
}
else if ((dconnection.init() == ServiceConnection.ServiceConnectionStatus.SUCCESS)
&& (dconnection.login() == ServiceConnection.ServiceConnectionStatus.SUCCESS)) {
startExperiments(selection, dconnection);
} else {
JOptionPane.showMessageDialog(null,"Check Data acquisition service configuration, or invalid credentials.",
"Info",JOptionPane.WARNING_MESSAGE);
} }
} }
} }
...@@ -363,19 +347,11 @@ class ExperimentList extends JFrame ...@@ -363,19 +347,11 @@ class ExperimentList extends JFrame
{ {
int[] selection = table.getSelectedRows(); int[] selection = table.getSelectedRows();
if (selection.length > 0) { if (selection.length > 0) {
if (dconnection.isSessionValid()) { if (dconnection.isSessionValid() && ((drconnection == null) || drconnection.isSessionValid())) {
stopExperiments(selection, dconnection); stopExperiments(selection, dconnection, drconnection);
} } else {
else if (dconnection.isInitialized()) {
JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.", JOptionPane.showMessageDialog(null,"Session expired. Restart the tools.",
"Info",JOptionPane.WARNING_MESSAGE); "Info",JOptionPane.WARNING_MESSAGE);
}
else if ((dconnection.init() == ServiceConnection.ServiceConnectionStatus.SUCCESS)
&& (dconnection.login() == ServiceConnection.ServiceConnectionStatus.SUCCESS)) {
stopExperiments(selection, dconnection);
} else {
JOptionPane.showMessageDialog(null,"Check Data acquisition service configuration, or invalid credentials.",
"Info",JOptionPane.WARNING_MESSAGE);
} }
} }
} }
...@@ -383,7 +359,7 @@ class ExperimentList extends JFrame ...@@ -383,7 +359,7 @@ class ExperimentList extends JFrame
} }
private void importAndStartExperiments(int[] selection, DaqServiceConnection dconnection) { private void importAndStartExperiments(int[] selection, DaqServiceConnection dconnection, DaqServiceConnection drconnection) {
for (int i = 0; i < selection.length; i++) { for (int i = 0; i < selection.length; i++) {
String experimentName = EXPERIMENT_PREFIX+(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()); String description = (String)table.getModel().getValueAt(selection[i], Column.DESCRIPTION.ordinal());
...@@ -396,7 +372,17 @@ class ExperimentList extends JFrame ...@@ -396,7 +372,17 @@ 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.PI.ordinal()), experimentName, Role.PI);
addRole((String)table.getModel().getValueAt(selection[i], Column.USER.ordinal()), experimentName, Role.USER); addRole((String)table.getModel().getValueAt(selection[i], Column.USER.ordinal()), experimentName, Role.USER);
if (sconnection.startExperiment(experimentName) == ServiceConnection.ServiceConnectionStatus.SUCCESS) { if (sconnection.startExperiment(experimentName) == ServiceConnection.ServiceConnectionStatus.SUCCESS) {
dconnection.startDaq(experimentName); // convert date
String startDateDir;
try {
startDateDir = convertDate2Dir(startDate);
} catch (ParseException e) {
startDateDir = startDate;
}
dconnection.startDaq(experimentName, startDateDir);
if (drconnection != null) {
drconnection.startDaq(experimentName, startDateDir);
}
} else { } else {
JOptionPane.showMessageDialog(null,"The experiment "+ experimentName +" did not start", JOptionPane.showMessageDialog(null,"The experiment "+ experimentName +" did not start",
"Info",JOptionPane.WARNING_MESSAGE); "Info",JOptionPane.WARNING_MESSAGE);
...@@ -405,18 +391,32 @@ class ExperimentList extends JFrame ...@@ -405,18 +391,32 @@ class ExperimentList extends JFrame
table.clearSelection(); table.clearSelection();
} }
private void startExperiments(int[] selection, DaqServiceConnection dconnection) { private void startExperiments(int[] selection, DaqServiceConnection dconnection, DaqServiceConnection drconnection) {
for (int i = 0; i < selection.length; i++) { for (int i = 0; i < selection.length; i++) {
String startDate = (String)table.getModel().getValueAt(selection[i], Column.START_DATE.ordinal());
// convert date
String startDateDir;
try {
startDateDir = convertDate2Dir(startDate);
} catch (ParseException e) {
startDateDir = startDate;
}
String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal());
dconnection.startDaq(experimentName); dconnection.startDaq(experimentName, startDateDir);
if (drconnection != null) {
drconnection.startDaq(experimentName, startDateDir);
}
} }
table.clearSelection(); table.clearSelection();
} }
private void stopExperiments(int[] selection, DaqServiceConnection dconnection) { private void stopExperiments(int[] selection, DaqServiceConnection dconnection, DaqServiceConnection drconnection) {
for (int i = 0; i < selection.length; i++) { for (int i = 0; i < selection.length; i++) {
String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal()); String experimentName = EXPERIMENT_PREFIX+(String)table.getModel().getValueAt(selection[i], Column.NAME.ordinal());
dconnection.stopDaq(experimentName); dconnection.stopDaq(experimentName);
if (drconnection != null) {
drconnection.stopDaq(experimentName);
}
} }
table.clearSelection(); table.clearSelection();
} }
...@@ -430,6 +430,45 @@ class ExperimentList extends JFrame ...@@ -430,6 +430,45 @@ class ExperimentList extends JFrame
sconnection.addExperimentUser(users[i], experimentName, role.toString()); sconnection.addExperimentUser(users[i], experimentName, role.toString());
} }
} }
private String convertDate2Dir(String startDate) throws ParseException {
String month = startDate.substring(0,3);
String numMonth = null;
if (month.equals("JAN")) {
numMonth = "01";
} else if (month.equals("FEB")) {
numMonth = "02";
} else if (month.equals("MAR")) {
numMonth = "03";
} else if (month.equals("APR")) {
numMonth = "04";
} else if (month.equals("MAY")) {
numMonth = "05";
} else if (month.equals("JUN")) {
numMonth = "06";
} else if (month.equals("JUL")) {
numMonth = "07";
} else if (month.equals("AUG")) {
numMonth = "08";
} else if (month.equals("SEP")) {
numMonth = "09";
} else if (month.equals("OCT")) {
numMonth = "10";
} else if (month.equals("NOV")) {
numMonth = "11";
} else if (month.equals("DEC")) {
numMonth = "12";
}
String agreableStartDate = numMonth + startDate.substring(3, startDate.length());
// parse the date
DateFormat f = new SimpleDateFormat("M-d-y");
Date d = f.parse(agreableStartDate);
// now print the date
DateFormat out = new SimpleDateFormat("yyyy-MM");
return out.format(d);
}
} }
...@@ -10,6 +10,7 @@ import java.io.FileInputStream; ...@@ -10,6 +10,7 @@ import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.sql.SQLException; import java.sql.SQLException;
import java.text.ParseException;
import java.util.Properties; import java.util.Properties;
import javax.swing.JFrame; import javax.swing.JFrame;
...@@ -18,7 +19,7 @@ import javax.swing.SwingUtilities; ...@@ -18,7 +19,7 @@ import javax.swing.SwingUtilities;
class Gui class Gui
{ {
public static void main(String arg[]) public static void main(String arg[]) throws ParseException
{ {
String configFile = arg[0]; String configFile = arg[0];
final Properties configProperties = new Properties(); final Properties configProperties = new Properties();
...@@ -45,10 +46,28 @@ class Gui ...@@ -45,10 +46,28 @@ class Gui
if (sconnection.init(configProperties.getProperty("dm.storageServ.connection")) != ServiceConnection.ServiceConnectionStatus.SUCCESS) { if (sconnection.init(configProperties.getProperty("dm.storageServ.connection")) != ServiceConnection.ServiceConnectionStatus.SUCCESS) {
System.exit(0); System.exit(0);
} }
DaqServiceConnection dconnection = new DaqServiceConnection(configProperties); String daqurl = configProperties.getProperty("dm.daq.connection");
String dataDir = configProperties.getProperty("dm.daq.datadir");
DaqServiceConnection dconnection = new DaqServiceConnection(daqurl, dataDir);
if (dconnection.init() != ServiceConnection.ServiceConnectionStatus.SUCCESS) {
System.exit(0);
}
DaqServiceConnection drconnection = null;
try {
String daqReceiverurl = configProperties.getProperty("dm.daqReciver.connection");
String dataReceiverDir = configProperties.getProperty("dm.daqReceiver.datadir");
if ((daqReceiverurl != null) && (dataReceiverDir != null)) {
drconnection = new DaqServiceConnection(daqReceiverurl, dataReceiverDir);
if (drconnection.init() != ServiceConnection.ServiceConnectionStatus.SUCCESS) {
System.exit(0);
}
}
} catch (Exception e) {
// possible null exception if property not defined
}
try try
{ {
LoginWindow frame = new LoginWindow(sconnection, oconnection, dconnection); LoginWindow frame = new LoginWindow(sconnection, oconnection, dconnection, drconnection);
frame.setSize(300,200); frame.setSize(300,200);
frame.setVisible(true); frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
...@@ -91,3 +110,4 @@ class Gui ...@@ -91,3 +110,4 @@ class Gui
} }
} }
} }
...@@ -17,7 +17,7 @@ public final class LoginWindow extends JFrame { ...@@ -17,7 +17,7 @@ public final class LoginWindow extends JFrame {
OracleConnection oconnection; OracleConnection oconnection;
JPanel panel; JPanel panel;
LoginWindow(final StorageServiceConnection sconnection, final OracleConnection oconnection, final DaqServiceConnection dconnection) { LoginWindow(final StorageServiceConnection sconnection, final OracleConnection oconnection, final DaqServiceConnection dconnection, final DaqServiceConnection drconnection) {
this.sconnection = sconnection; this.sconnection = sconnection;
this.oconnection = oconnection; this.oconnection = oconnection;
...@@ -64,13 +64,18 @@ public final class LoginWindow extends JFrame { ...@@ -64,13 +64,18 @@ public final class LoginWindow extends JFrame {
JOptionPane.showMessageDialog(null,"enter login and password", JOptionPane.showMessageDialog(null,"enter login and password",
"Error",JOptionPane.ERROR_MESSAGE); "Error",JOptionPane.ERROR_MESSAGE);
} else { } else {
sconnection.setLogin(user, pass); // sconnection.setLogin(user, pass);
dconnection.setLogin(user, pass); // dconnection.setLogin(user, pass);
int aaResult = sconnection.login(); int aaResult = sconnection.login(user, pass);
if ((dconnection.login(user, pass) != aaResult) || (dconnection.login(user, pass) != aaResult)) {
JOptionPane.showMessageDialog(null,"inconsistent login response",
"Error",JOptionPane.ERROR_MESSAGE);
return;
}
switch (aaResult) { switch (aaResult) {
case ServiceConnection.ServiceConnectionStatus.SUCCESS: case ServiceConnection.ServiceConnectionStatus.SUCCESS:
setVisible(false); setVisible(false);
ExperimentList page=new ExperimentList(sectorText.getText().trim(), oconnection, sconnection, dconnection); ExperimentList page=new ExperimentList(sectorText.getText().trim(), oconnection, sconnection, dconnection, drconnection);
page.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); page.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
page.addWindowListener(new WindowAdapter() { page.addWindowListener(new WindowAdapter() {
@Override @Override
...@@ -102,3 +107,4 @@ public final class LoginWindow extends JFrame { ...@@ -102,3 +107,4 @@ public final class LoginWindow extends JFrame {
}); });
} }
} }
...@@ -49,3 +49,4 @@ public class OracleConnection { ...@@ -49,3 +49,4 @@ public class OracleConnection {
} }
} }
...@@ -38,7 +38,81 @@ public class DaqServiceConnection extends ServiceConnection{ ...@@ -38,7 +38,81 @@ public class DaqServiceConnection extends ServiceConnection{
} else { } else {
directory = dataDir + "/" + experimentName; directory = dataDir + "/" + experimentName;
} }
package gov.anl.dm.esafsync.serviceconn;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
public class DaqServiceConnection extends ServiceConnection{
class Keyword {
static final String DAQ_EXPERIMENT_NAME = "experimentName";
static final String DAQ_DATA_DIRECTORY = "dataDirectory";
}
class StorageServUrl {
static final String START_DAQ = "/experiments/startDaq";
static final String STOP_DAQ = "/experiments/stopDaq";
}
private String url;
private String dataDir;
public DaqServiceConnection(String url, String dataDir) {
this.url = url;
this.dataDir = dataDir;
}
public final int init() {
return super.init(url);
}
public void startDaq(String experimentName, String startDateDir) {
String directory;
String dateDirectory;
if (dataDir.endsWith("/")) {
dateDirectory = dataDir + "/" + startDateDir;
directory = dataDir + startDateDir + "/" + experimentName;
} else {
dateDirectory = dataDir + startDateDir;
directory = dataDir + "/" + startDateDir + "/" + experimentName;
}
Map<String, String> data = new HashMap<>();
data.put(Keyword.DAQ_EXPERIMENT_NAME, encode(experimentName));
data.put(Keyword.DAQ_DATA_DIRECTORY, encode(directory));
if ((new File(directory)).exists()) {
invokeSessionPostRequest(StorageServUrl.START_DAQ, data);
} else if ((new File(dateDirectory)).exists()) {
if (new File(directory).mkdir()) {
invokeSessionPostRequest(StorageServUrl.START_DAQ, data);
} else {
JOptionPane.showMessageDialog(null,"Can't start experiment " + experimentName + " in DAQ service. The experiment directory can't be created.",
"Warning",JOptionPane.WARNING_MESSAGE);
}
} else {
if ((new File(dateDirectory).mkdir()) && (new File(directory).mkdir())) {
invokeSessionPostRequest(StorageServUrl.START_DAQ, data);
} else {
JOptionPane.showMessageDialog(null,"Can't start experiment " + experimentName + " in DAQ service. The experiment directory can't be created.",
"Warning",JOptionPane.WARNING_MESSAGE);
}
}
}
public void stopDaq(String experimentName) {
Map<String, String> data = new HashMap<>();
data.put(Keyword.DAQ_EXPERIMENT_NAME, encode(experimentName));
invokeSessionPostRequest(StorageServUrl.STOP_DAQ, data);
}
}
Map<String, String> data = new HashMap<>(); Map<String, String> data = new HashMap<>();
data.put(Keyword.DAQ_EXPERIMENT_NAME, encode(experimentName)); data.put(Keyword.DAQ_EXPERIMENT_NAME, encode(experimentName));
data.put(Keyword.DAQ_DATA_DIRECTORY, encode(directory)); data.put(Keyword.DAQ_DATA_DIRECTORY, encode(directory));
......
...@@ -508,7 +508,7 @@ public class ServiceConnection { ...@@ -508,7 +508,7 @@ public class ServiceConnection {
return login.login(); return login.login();
} }
private final int login(String username, String password) { public final int login(String username, String password) {
HttpsURLConnection connection = null; HttpsURLConnection connection = null;
try { try {
String urlString = getFullRequestUrl(StorageServUrl.LOGIN_REQUEST); String urlString = getFullRequestUrl(StorageServUrl.LOGIN_REQUEST);
...@@ -552,3 +552,4 @@ public class ServiceConnection { ...@@ -552,3 +552,4 @@ public class ServiceConnection {
} }
...@@ -59,3 +59,4 @@ public class StorageServiceConnection extends ServiceConnection{ ...@@ -59,3 +59,4 @@ public class StorageServiceConnection extends ServiceConnection{
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment