diff options
author | Simon Rettberg | 2015-09-09 15:14:43 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-09 15:14:43 +0200 |
commit | 864297f4ae1530da3a4d7a903782b6e34071b424 (patch) | |
tree | 1296c12fe2f9a0dc8e2b3cfefaa65870df9c5fd4 | |
parent | [server] Also inform lecture owners about expising images, if the image expir... (diff) | |
download | tutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.tar.gz tutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.tar.xz tutor-module-864297f4ae1530da3a4d7a903782b6e34071b424.zip |
[server] Fix virtualizer store query
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 |