summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-09 15:14:43 +0200
committerSimon Rettberg2015-09-09 15:14:43 +0200
commit864297f4ae1530da3a4d7a903782b6e34071b424 (patch)
tree1296c12fe2f9a0dc8e2b3cfefaa65870df9c5fd4
parent[server] Also inform lecture owners about expising images, if the image expir... (diff)
downloadtutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.tar.gz
tutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.tar.xz
tutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.zip
[server] Fix virtualizer store query
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java18
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOrganization.java25
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOsVirt.java2
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/cache/OrganizationList.java18
4 files changed, 61 insertions, 2 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
index df34b97a..f82efe24 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
@@ -487,4 +487,22 @@ public class DbLecture {
}
}
+ public static List<LectureSummary> getLecturesUsingImageVersion(String imageVersionId) throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement stmt = connection.prepareStatement(summaryBaseSql
+ + " WHERE l.imageversionid = :imageversionid");
+ stmt.setString("userid", "-");
+ stmt.setString("imageversionid", imageVersionId);
+ ResultSet rs = stmt.executeQuery();
+ List<LectureSummary> list = new ArrayList<>();
+ while (rs.next()) {
+ list.add(fillSummary(null, rs));
+ }
+ return list;
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in DbLecture.getExpiringLectures()", e);
+ throw e;
+ }
+ }
+
}
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOrganization.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOrganization.java
index dbc75944..f208f2c2 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOrganization.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOrganization.java
@@ -111,4 +111,29 @@ public class DbOrganization {
}
}
+ /**
+ * Return list of known organizations. This is a backup solution for
+ * fetching the list form them aster server, as this one doesn't fill all
+ * fields.
+ *
+ * @return list of all known organizations
+ * @throws SQLException
+ */
+ public static List<Organization> getAll() throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement stmt = connection.prepareStatement("SELECT" + " o.organizationid, o.displayname"
+ + " FROM organization o");
+ ResultSet rsOrg = stmt.executeQuery();
+ List<Organization> list = new ArrayList<>();
+ while (rsOrg.next()) {
+ list.add(new Organization(rsOrg.getString("organizationid"), rsOrg.getString("displayname"),
+ null, null));
+ }
+ return list;
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in DbOrganization.getAll()", e);
+ throw e;
+ }
+ }
+
}
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOsVirt.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOsVirt.java
index a8e24894..c34e5d72 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOsVirt.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbOsVirt.java
@@ -84,7 +84,7 @@ public class DbOsVirt {
+ " ON DUPLICATE KEY UPDATE virtname = VALUES(virtname)");
for (Virtualizer virt : list) {
stmt.setString("virtid", virt.virtId);
- stmt.setString("displayname", virt.virtName);
+ stmt.setString("virtname", virt.virtName);
stmt.executeUpdate();
}
connection.commit();
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/cache/OrganizationList.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/cache/OrganizationList.java
index 4325b152..6d2ebda2 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/cache/OrganizationList.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/cache/OrganizationList.java
@@ -3,7 +3,9 @@ package org.openslx.bwlp.sat.thrift.cache;
import java.sql.SQLException;
import java.util.List;
+import org.apache.log4j.Logger;
import org.apache.thrift.TException;
+import org.apache.thrift.transport.TTransportException;
import org.openslx.bwlp.sat.database.mappers.DbOrganization;
import org.openslx.bwlp.thrift.iface.Organization;
import org.openslx.thrifthelper.ThriftManager;
@@ -15,6 +17,8 @@ import org.openslx.util.QuickTimer.Task;
* the master server.
*/
public class OrganizationList extends CacheBase<List<Organization>> {
+
+ private static final Logger LOGGER = Logger.getLogger(OrganizationList.class);
private static final OrganizationList instance = new OrganizationList();
@@ -24,7 +28,19 @@ public class OrganizationList extends CacheBase<List<Organization>> {
@Override
protected List<Organization> getCallback() throws TException {
- final List<Organization> organizations = ThriftManager.getMasterClient().getOrganizations();
+ final List<Organization> organizations;
+ try {
+ organizations = ThriftManager.getMasterClient().getOrganizations();
+ } catch (TException e1) {
+ LOGGER.warn("Could not fetch Organization list from master, using local data...",
+ e1 instanceof TTransportException ? null : e1);
+ try {
+ return DbOrganization.getAll();
+ } catch (SQLException e) {
+ LOGGER.warn("Using local Organization list from database also failed.", e);
+ }
+ return null;
+ }
// Also store the list in the local data base (asynchronous, in the timer thread)
QuickTimer.scheduleOnce(new Task() {
@Override