From 5d94f0ba69a68a3fb733fc0617bc6a414dae8a52 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Wed, 19 Aug 2015 13:40:53 +0200 Subject: [client] move thrift cache to its own package --- .../gui/control/table/ImagePermissionTable.java | 2 +- .../dozmod/gui/control/table/ImageTable.java | 4 +- .../gui/control/table/ImageVersionTable.java | 2 +- .../gui/control/table/LecturePermissionTable.java | 2 +- .../dozmod/gui/control/table/LectureTable.java | 2 +- .../dozmod/gui/window/ImageDetailsWindow.java | 10 ++- .../openslx/dozmod/gui/window/ImageListWindow.java | 2 +- .../dozmod/gui/window/LectureDetailsWindow.java | 2 +- .../dozmod/gui/window/LectureListWindow.java | 4 +- .../org/openslx/dozmod/gui/window/LoginWindow.java | 2 +- .../openslx/dozmod/gui/window/UserListWindow.java | 2 +- .../openslx/dozmod/gui/wizard/LectureWizard.java | 2 +- .../dozmod/gui/wizard/page/ImageMetaDataPage.java | 2 +- .../dozmod/gui/wizard/page/ImageUploadPage.java | 2 +- .../java/org/openslx/dozmod/thrift/ImageCache.java | 40 ---------- .../org/openslx/dozmod/thrift/LectureCache.java | 40 ---------- .../org/openslx/dozmod/thrift/MetaDataCache.java | 87 ---------------------- .../openslx/dozmod/thrift/OrganizationCache.java | 74 ------------------ .../java/org/openslx/dozmod/thrift/UserCache.java | 71 ------------------ .../openslx/dozmod/thrift/cache/ImageCache.java | 41 ++++++++++ .../openslx/dozmod/thrift/cache/LectureCache.java | 41 ++++++++++ .../openslx/dozmod/thrift/cache/MetaDataCache.java | 87 ++++++++++++++++++++++ .../dozmod/thrift/cache/OrganizationCache.java | 74 ++++++++++++++++++ .../org/openslx/dozmod/thrift/cache/UserCache.java | 72 ++++++++++++++++++ 24 files changed, 338 insertions(+), 329 deletions(-) delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/MetaDataCache.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/OrganizationCache.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/ImageCache.java create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/LectureCache.java create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/MetaDataCache.java create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/OrganizationCache.java create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/UserCache.java (limited to 'dozentenmodul/src/main/java') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImagePermissionTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImagePermissionTable.java index 9092e8af..75347950 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImagePermissionTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImagePermissionTable.java @@ -3,7 +3,7 @@ package org.openslx.dozmod.gui.control.table; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.dozmod.gui.control.table.ImagePermissionTable.UserImagePermissions; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java index 3bc3d8bf..4d561cfc 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageTable.java @@ -6,8 +6,8 @@ import java.util.Comparator; import javax.swing.JTable; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; -import org.openslx.dozmod.thrift.MetaDataCache; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.MetaDataCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageVersionTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageVersionTable.java index f2e98ca8..a197c65c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageVersionTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ImageVersionTable.java @@ -2,7 +2,7 @@ package org.openslx.dozmod.gui.control.table; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LecturePermissionTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LecturePermissionTable.java index ef786db7..b30783e8 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LecturePermissionTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LecturePermissionTable.java @@ -2,7 +2,7 @@ package org.openslx.dozmod.gui.control.table; import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LectureTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LectureTable.java index ae49b6f1..32adc2c8 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LectureTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/LectureTable.java @@ -6,7 +6,7 @@ import java.util.Comparator; import javax.swing.JTable; import org.openslx.bwlp.thrift.iface.LectureSummary; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 123e1817..78714408 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -36,10 +36,10 @@ import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout; import org.openslx.dozmod.gui.wizard.LectureWizard; import org.openslx.dozmod.permissions.ImagePerms; -import org.openslx.dozmod.thrift.MetaDataCache; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftError; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.MetaDataCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; @@ -103,6 +103,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe saveChanges(); } }); + btnUpdateImage.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + // TODO image version up + } + }); btnChangeOwner.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java index 56482301..1fc9d1ce 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java @@ -32,8 +32,8 @@ import org.openslx.dozmod.gui.window.layout.ImageListWindowLayout; import org.openslx.dozmod.gui.wizard.ImageWizard; import org.openslx.dozmod.gui.wizard.LectureWizard; import org.openslx.dozmod.permissions.ImagePerms; -import org.openslx.dozmod.thrift.ImageCache; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.thrift.cache.ImageCache; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 446122a4..c0956cf3 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -28,7 +28,7 @@ import org.openslx.dozmod.gui.window.layout.LectureDetailsWindowLayout; import org.openslx.dozmod.permissions.LecturePerms; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftError; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java index ca5f42d5..82f1abd5 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureListWindow.java @@ -23,9 +23,9 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.window.layout.LectureListWindowLayout; -import org.openslx.dozmod.thrift.LectureCache; import org.openslx.dozmod.thrift.Session; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.LectureCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.dozmod.util.FormatHelper; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java index 56a0607c..2d04ba3b 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LoginWindow.java @@ -37,8 +37,8 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.window.layout.LoginWindowLayout; -import org.openslx.dozmod.thrift.OrganizationCache; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.thrift.cache.OrganizationCache; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java index 188eb3cd..110afec7 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/UserListWindow.java @@ -19,7 +19,7 @@ import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.window.layout.UserListWindowLayout; -import org.openslx.dozmod.thrift.UserCache; +import org.openslx.dozmod.thrift.cache.UserCache; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java index c57018e5..e3d9d2d1 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/LectureWizard.java @@ -15,9 +15,9 @@ import org.openslx.dozmod.gui.wizard.page.LectureCreationPage; import org.openslx.dozmod.gui.wizard.page.LectureCustomPermissionPage; import org.openslx.dozmod.gui.wizard.page.LectureOptionsPage; import org.openslx.dozmod.state.LectureWizardState; -import org.openslx.dozmod.thrift.LectureCache; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftError; +import org.openslx.dozmod.thrift.cache.LectureCache; import org.openslx.thrifthelper.ThriftManager; @SuppressWarnings("serial") diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java index 2423467b..b4e9816c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java @@ -15,8 +15,8 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageMetaDataPageLayout; import org.openslx.dozmod.state.UploadWizardState; -import org.openslx.dozmod.thrift.MetaDataCache; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java index 62290a18..2e4ce13e 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java @@ -24,8 +24,8 @@ import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageUploadPageLayout; import org.openslx.dozmod.state.UploadWizardState; -import org.openslx.dozmod.thrift.MetaDataCache; import org.openslx.dozmod.thrift.Session; +import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.Util; import org.openslx.util.vm.VmMetaData.HardDisk; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java deleted file mode 100644 index d9795ace..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.openslx.dozmod.thrift; - -import java.util.List; - -import org.apache.thrift.TException; -import org.openslx.bwlp.thrift.iface.ImageSummaryRead; -import org.openslx.bwlp.thrift.iface.TAuthorizationException; -import org.openslx.bwlp.thrift.iface.TInternalServerError; -import org.openslx.thrifthelper.ThriftManager; -import org.openslx.util.GenericDataCache; -import org.openslx.util.GenericDataCache.CacheMode; - -public class ImageCache { - - private static final int CACHE_TIME_LIST_MS = 2 * 60 * 1000; - - private static final GenericDataCache> listCache = new GenericDataCache>(CACHE_TIME_LIST_MS) { - @Override - protected List update() throws TAuthorizationException, TInternalServerError, TException { - List result = null; - int pageSize = Session.getSatelliteConfig().pageSize; - for (int i = 0;; ++i) { - List page = ThriftManager.getSatClient().getImageList(Session.getSatelliteToken(), null, i); - if (result == null) { - result = page; - } else { - result.addAll(page); - } - if (page.size() < pageSize) - break; - } - return result; - } - }; - - public static List get(boolean forceRefresh) { - return listCache.get(forceRefresh ? CacheMode.NEVER_CACHED : CacheMode.DEFAULT); - } - -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java deleted file mode 100644 index bbed5adc..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.openslx.dozmod.thrift; - -import java.util.List; - -import org.apache.thrift.TException; -import org.openslx.bwlp.thrift.iface.LectureSummary; -import org.openslx.bwlp.thrift.iface.TAuthorizationException; -import org.openslx.bwlp.thrift.iface.TInternalServerError; -import org.openslx.thrifthelper.ThriftManager; -import org.openslx.util.GenericDataCache; -import org.openslx.util.GenericDataCache.CacheMode; - -public class LectureCache { - - private static final int CACHE_TIME_LIST_MS = 2 * 60 * 1000; - - private static final GenericDataCache> listCache = new GenericDataCache>(CACHE_TIME_LIST_MS) { - @Override - protected List update() throws TAuthorizationException, TInternalServerError, TException { - List result = null; - int pageSize = Session.getSatelliteConfig().pageSize; - for (int i = 0;; ++i) { - List page = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), i); - if (result == null) { - result = page; - } else { - result.addAll(page); - } - if (page.size() < pageSize) - break; - } - return result; - } - }; - - public static List get(boolean forceRefresh) { - return listCache.get(forceRefresh ? CacheMode.NEVER_CACHED : CacheMode.DEFAULT); - } - -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/MetaDataCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/MetaDataCache.java deleted file mode 100644 index f71d2a0d..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/MetaDataCache.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.openslx.dozmod.thrift; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.apache.thrift.TException; -import org.openslx.bwlp.thrift.iface.OperatingSystem; -import org.openslx.bwlp.thrift.iface.Virtualizer; -import org.openslx.thrifthelper.ThriftManager; -import org.openslx.util.GenericDataCache; - -public class MetaDataCache { - - private static final Logger LOGGER = Logger.getLogger(MetaDataCache.class); - - /** - * How long to cache data. - */ - private static final int CACHE_TIME_MS = 60 * 60 * 1000; - - private static final GenericDataCache> osCache = new GenericDataCache>( - CACHE_TIME_MS) { - @Override - protected List update() throws TException { - try { - return ThriftManager.getSatClient().getOperatingSystems(); - } catch (Exception e) { - LOGGER.warn("Could not get OS list from satellite, trying master for backup...", e); - } - return ThriftManager.getMasterClient().getOperatingSystems(); - } - }; - - private static final GenericDataCache> virtualizerCache = new GenericDataCache>( - CACHE_TIME_MS) { - @Override - protected List update() throws TException { - try { - return ThriftManager.getSatClient().getVirtualizers(); - } catch (TException e) { - LOGGER.warn("Could not get virtualizer list from satellite, trying master for backup...", e); - } - return ThriftManager.getMasterClient().getVirtualizers(); - } - }; - - /** - * Get all known/valid operating systems an image can be marked as. - * - * @return - */ - public static List getOperatingSystems() { - return osCache.get(); - } - - public static OperatingSystem getOsById(int id) { - List list = getOperatingSystems(); - if (list == null) - return null; - for (OperatingSystem os : list) { - if (os.getOsId() == id) - return os; - } - return null; - } - - /** - * Get all supported virtualizers an image can be declared to be run as. - * - * @return - */ - public static List getVirtualizers() { - return virtualizerCache.get(); - } - - public static Virtualizer getVirtualizerById(String virtId) { - List list = getVirtualizers(); - if (list == null) - return null; - for (Virtualizer virt : list) { - if (virt.getVirtId().equals(virtId)) - return virt; - } - return null; - } - -} \ No newline at end of file diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/OrganizationCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/OrganizationCache.java deleted file mode 100644 index 3b8d4765..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/OrganizationCache.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.openslx.dozmod.thrift; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.openslx.bwlp.thrift.iface.Organization; -import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.thrifthelper.ThriftManager; -import org.openslx.util.GenericDataCache; - -public class OrganizationCache { - - private static final Logger LOGGER = Logger.getLogger(OrganizationCache.class); - - /** - * How long should the list be cached? - */ - private static final int CACHE_TIME_MS = 20 * 60 * 1000; - - private static final GenericDataCache> cache = new GenericDataCache>(CACHE_TIME_MS) { - - @Override - protected List update() throws Exception { - try { - return ThriftManager.getMasterClient().getOrganizations(); - } catch (Exception e) { - LOGGER.warn("Failed to get organization list from master server, trying satellite for backup..", e); - } - return ThriftManager.getSatClient().getAllOrganizations(); - // TODO: Sort list by display name? - } - }; - - private OrganizationCache() { - // No instancing - } - - /** - * Get all known organizations - * - * @return list of organizations - */ - public static List getAll() { - return cache.get(); - } - - /** - * Find the organization the given user belongs to - * - * @param user - * @return matching organization, or null if not found - */ - public static Organization find(UserInfo user) { - return find(user.organizationId); - } - - /** - * Find the organization with the given id - * - * @param organization id - * @return matching organization, or null if not found - */ - public static Organization find(String organizationId) { - List list = cache.get(); - if (list == null) - return null; - for (Organization org : list) { - if (org.organizationId.equals(organizationId)) - return org; - } - return null; - } - -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java deleted file mode 100644 index 949d01c1..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.openslx.dozmod.thrift; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.thrifthelper.ThriftManager; -import org.openslx.util.GenericDataCache; - -public class UserCache { - - private static final Logger LOGGER = Logger.getLogger(UserCache.class); - - /** - * How long should the list be cached? - */ - private static final int CACHE_TIME_MS = 5 * 60 * 1000; - - private static final GenericDataCache> cache = new GenericDataCache>( - CACHE_TIME_MS) { - - @Override - protected List update() throws Exception { - List result = null; - int pageSize = Session.getSatelliteConfig().pageSize; - for (int i = 0;; ++i) { - List page = ThriftManager.getSatClient() - .getUserList(Session.getSatelliteToken(), i); - if (result == null) { - result = page; - } else { - result.addAll(page); - } - if (page.size() < pageSize) - break; - } - return result; - } - }; - - private UserCache() { - // No instancing - } - - /** - * Get all known users - * - * @return list of users - */ - public static List getAll() { - return cache.get(); - } - - /** - * Find the user with the given id - * - * @param user id - * @return matching user, or null if not found - */ - public static UserInfo find(String userId) { - List list = cache.get(); - if (list == null) - return null; - for (UserInfo user : list) { - if (user.userId.equals(userId)) - return user; - } - return null; - } - -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/ImageCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/ImageCache.java new file mode 100644 index 00000000..8e6f8566 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/ImageCache.java @@ -0,0 +1,41 @@ +package org.openslx.dozmod.thrift.cache; + +import java.util.List; + +import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.ImageSummaryRead; +import org.openslx.bwlp.thrift.iface.TAuthorizationException; +import org.openslx.bwlp.thrift.iface.TInternalServerError; +import org.openslx.dozmod.thrift.Session; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.GenericDataCache; +import org.openslx.util.GenericDataCache.CacheMode; + +public class ImageCache { + + private static final int CACHE_TIME_LIST_MS = 2 * 60 * 1000; + + private static final GenericDataCache> listCache = new GenericDataCache>(CACHE_TIME_LIST_MS) { + @Override + protected List update() throws TAuthorizationException, TInternalServerError, TException { + List result = null; + int pageSize = Session.getSatelliteConfig().pageSize; + for (int i = 0;; ++i) { + List page = ThriftManager.getSatClient().getImageList(Session.getSatelliteToken(), null, i); + if (result == null) { + result = page; + } else { + result.addAll(page); + } + if (page.size() < pageSize) + break; + } + return result; + } + }; + + public static List get(boolean forceRefresh) { + return listCache.get(forceRefresh ? CacheMode.NEVER_CACHED : CacheMode.DEFAULT); + } + +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/LectureCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/LectureCache.java new file mode 100644 index 00000000..6b4466c8 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/LectureCache.java @@ -0,0 +1,41 @@ +package org.openslx.dozmod.thrift.cache; + +import java.util.List; + +import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.LectureSummary; +import org.openslx.bwlp.thrift.iface.TAuthorizationException; +import org.openslx.bwlp.thrift.iface.TInternalServerError; +import org.openslx.dozmod.thrift.Session; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.GenericDataCache; +import org.openslx.util.GenericDataCache.CacheMode; + +public class LectureCache { + + private static final int CACHE_TIME_LIST_MS = 2 * 60 * 1000; + + private static final GenericDataCache> listCache = new GenericDataCache>(CACHE_TIME_LIST_MS) { + @Override + protected List update() throws TAuthorizationException, TInternalServerError, TException { + List result = null; + int pageSize = Session.getSatelliteConfig().pageSize; + for (int i = 0;; ++i) { + List page = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), i); + if (result == null) { + result = page; + } else { + result.addAll(page); + } + if (page.size() < pageSize) + break; + } + return result; + } + }; + + public static List get(boolean forceRefresh) { + return listCache.get(forceRefresh ? CacheMode.NEVER_CACHED : CacheMode.DEFAULT); + } + +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/MetaDataCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/MetaDataCache.java new file mode 100644 index 00000000..340d95e8 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/MetaDataCache.java @@ -0,0 +1,87 @@ +package org.openslx.dozmod.thrift.cache; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.apache.thrift.TException; +import org.openslx.bwlp.thrift.iface.OperatingSystem; +import org.openslx.bwlp.thrift.iface.Virtualizer; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.GenericDataCache; + +public class MetaDataCache { + + private static final Logger LOGGER = Logger.getLogger(MetaDataCache.class); + + /** + * How long to cache data. + */ + private static final int CACHE_TIME_MS = 60 * 60 * 1000; + + private static final GenericDataCache> osCache = new GenericDataCache>( + CACHE_TIME_MS) { + @Override + protected List update() throws TException { + try { + return ThriftManager.getSatClient().getOperatingSystems(); + } catch (Exception e) { + LOGGER.warn("Could not get OS list from satellite, trying master for backup...", e); + } + return ThriftManager.getMasterClient().getOperatingSystems(); + } + }; + + private static final GenericDataCache> virtualizerCache = new GenericDataCache>( + CACHE_TIME_MS) { + @Override + protected List update() throws TException { + try { + return ThriftManager.getSatClient().getVirtualizers(); + } catch (TException e) { + LOGGER.warn("Could not get virtualizer list from satellite, trying master for backup...", e); + } + return ThriftManager.getMasterClient().getVirtualizers(); + } + }; + + /** + * Get all known/valid operating systems an image can be marked as. + * + * @return + */ + public static List getOperatingSystems() { + return osCache.get(); + } + + public static OperatingSystem getOsById(int id) { + List list = getOperatingSystems(); + if (list == null) + return null; + for (OperatingSystem os : list) { + if (os.getOsId() == id) + return os; + } + return null; + } + + /** + * Get all supported virtualizers an image can be declared to be run as. + * + * @return + */ + public static List getVirtualizers() { + return virtualizerCache.get(); + } + + public static Virtualizer getVirtualizerById(String virtId) { + List list = getVirtualizers(); + if (list == null) + return null; + for (Virtualizer virt : list) { + if (virt.getVirtId().equals(virtId)) + return virt; + } + return null; + } + +} \ No newline at end of file diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/OrganizationCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/OrganizationCache.java new file mode 100644 index 00000000..4d1c1225 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/OrganizationCache.java @@ -0,0 +1,74 @@ +package org.openslx.dozmod.thrift.cache; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.openslx.bwlp.thrift.iface.Organization; +import org.openslx.bwlp.thrift.iface.UserInfo; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.GenericDataCache; + +public class OrganizationCache { + + private static final Logger LOGGER = Logger.getLogger(OrganizationCache.class); + + /** + * How long should the list be cached? + */ + private static final int CACHE_TIME_MS = 20 * 60 * 1000; + + private static final GenericDataCache> cache = new GenericDataCache>(CACHE_TIME_MS) { + + @Override + protected List update() throws Exception { + try { + return ThriftManager.getMasterClient().getOrganizations(); + } catch (Exception e) { + LOGGER.warn("Failed to get organization list from master server, trying satellite for backup..", e); + } + return ThriftManager.getSatClient().getAllOrganizations(); + // TODO: Sort list by display name? + } + }; + + private OrganizationCache() { + // No instancing + } + + /** + * Get all known organizations + * + * @return list of organizations + */ + public static List getAll() { + return cache.get(); + } + + /** + * Find the organization the given user belongs to + * + * @param user + * @return matching organization, or null if not found + */ + public static Organization find(UserInfo user) { + return find(user.organizationId); + } + + /** + * Find the organization with the given id + * + * @param organization id + * @return matching organization, or null if not found + */ + public static Organization find(String organizationId) { + List list = cache.get(); + if (list == null) + return null; + for (Organization org : list) { + if (org.organizationId.equals(organizationId)) + return org; + } + return null; + } + +} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/UserCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/UserCache.java new file mode 100644 index 00000000..4b51e2c3 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/cache/UserCache.java @@ -0,0 +1,72 @@ +package org.openslx.dozmod.thrift.cache; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.openslx.bwlp.thrift.iface.UserInfo; +import org.openslx.dozmod.thrift.Session; +import org.openslx.thrifthelper.ThriftManager; +import org.openslx.util.GenericDataCache; + +public class UserCache { + + private static final Logger LOGGER = Logger.getLogger(UserCache.class); + + /** + * How long should the list be cached? + */ + private static final int CACHE_TIME_MS = 5 * 60 * 1000; + + private static final GenericDataCache> cache = new GenericDataCache>( + CACHE_TIME_MS) { + + @Override + protected List update() throws Exception { + List result = null; + int pageSize = Session.getSatelliteConfig().pageSize; + for (int i = 0;; ++i) { + List page = ThriftManager.getSatClient() + .getUserList(Session.getSatelliteToken(), i); + if (result == null) { + result = page; + } else { + result.addAll(page); + } + if (page.size() < pageSize) + break; + } + return result; + } + }; + + private UserCache() { + // No instancing + } + + /** + * Get all known users + * + * @return list of users + */ + public static List getAll() { + return cache.get(); + } + + /** + * Find the user with the given id + * + * @param user id + * @return matching user, or null if not found + */ + public static UserInfo find(String userId) { + List list = cache.get(); + if (list == null) + return null; + for (UserInfo user : list) { + if (user.userId.equals(userId)) + return user; + } + return null; + } + +} -- cgit v1.2.3-55-g7522