/** * Calls main constructor with read-only status being all read-write. */ public PixelDataThread(boolean performProcessing, SessionManager manager, Executor executor, PixelDataHandler handler, Principal principal, String uuid, int numThreads, Metrics metrics) { this(performProcessing, manager, executor, handler, principal, uuid, numThreads, metrics, new ReadOnlyStatus(false, false)); }
@Override public boolean isReadOnly(ReadOnlyStatus readOnly) { return readOnly.isReadOnlyDb(); } }
/** * @return if the changes for read-only should be made */ private boolean isTriggerConditionMet() { return isWriteDb && readOnly.isReadOnlyDb() || isWriteRepo && readOnly.isReadOnlyRepo(); }
public ReadOnlyStatus(boolean isReadOnly, boolean isReadOnlyDb, boolean isReadOnlyRepo, SqlAction sqlAction, String omeroDataDir, String omeroManagedDir) throws SQLException { this.isReadOnlyDb = isReadOnly || isReadOnlyDb || !canWriteDb(sqlAction); this.isReadOnlyRepo = isReadOnly || isReadOnlyRepo || !canWriteDir(omeroDataDir) || !canWriteDir(omeroManagedDir); log.info("read-only status: db={}, repo={}", this.isReadOnlyDb, this.isReadOnlyRepo); }
/** * Ensure that the given directory exists, creating it if necessary. * @param directoryName the name of the required directory */ private void checkDirectory(String directoryName) { final File directory = new File(directoryName); if (directory.listFiles() == null) { if (readOnly.isReadOnlyRepo()) { throw new BeanCreationException("required directory " + directory + " cannot be read but repository is read-only"); } else { directory.mkdirs(); log.info("Created " + directory); } } } }
public LegacyRepositoryI(Ice.ObjectAdapter oa, Registry reg, Executor ex, Principal p, FileMaker fileMaker, ReadOnlyStatus readOnly, PublicRepositoryI servant) { super(oa, reg, ex, p, fileMaker, readOnly, servant); this.fs = new OriginalFilesService(fileMaker.getDir(), readOnly.isReadOnlyRepo()); }
public EventHandler(SqlAction sql, BasicSecuritySystem securitySystem, SessionFactory factory, TransactionAttributeSource txSource, ReadOnlyStatus readOnly) { this.secSys = securitySystem; this.txSource = txSource; this.factory = factory; this.sql = sql; this.readOnly = readOnly == null ? false : readOnly.isReadOnlyDb(); }
/** * @see #ScriptRepoHelper(String, File, Executor, String, Principal, Roles) */ @Deprecated public ScriptRepoHelper(String uuid, File dir, Executor ex, String sessionUuid, Principal p, Roles roles) { this(uuid, dir, ex, sessionUuid, p, roles, new ReadOnlyStatus(false, false)); log.info("assuming read-write repository"); }
/** * Set read-only status in the current configuration. * @param iConfig the configuration service * @param readOnly the read-only status */ public ReadOnlyConfigInit(IConfig iConfig, ReadOnlyStatus readOnly) { iConfig.setConfigValue(KEY_PREFIX + "db", Boolean.toString(readOnly.isReadOnlyDb())); iConfig.setConfigValue(KEY_PREFIX + "repo", Boolean.toString(readOnly.isReadOnlyRepo())); } }
private String handleFileMaker() throws Exception { if (fileMaker.needsInit()) { fileMaker.init(sf.getConfigService().getDatabaseUuid(), readOnly.isReadOnlyRepo()); } String line = null; try { line = fileMaker.getLine(); } catch (OverlappingFileLockException ofle) { InternalRepositoryPrx[] repos = reg.lookupRepositories(); InternalRepositoryPrx prx = null; if (repos != null) { for (int i = 0; i < repos.length; i++) { if (repos[i] != null) { if (repos[i].toString().contains(repoUuid)) { prx = repos[i]; } } } } if (prx == null) { fileMaker.close(); FileMaker newFileMaker = new FileMaker(new File( fileMaker.getDir()).getAbsolutePath()); fileMaker.init(sf.getConfigService().getDatabaseUuid(), readOnly.isReadOnlyRepo()); line = newFileMaker.getLine(); } } return line; }
@Override public boolean isReadOnly(ReadOnlyStatus readOnly) { return readOnly.isReadOnlyDb(); } }
public TemporaryRepositoryI(Ice.ObjectAdapter oa, Registry reg, Executor ex, Principal p, PublicRepositoryI servant) { super(oa, reg, ex, p, System.getProperty("java.io.tmpdir"), new ReadOnlyStatus(false, false), servant); }
private ome.model.core.OriginalFile handleRepository(String line) throws Exception { if (line == null) { repoUuid = generateRepoUuid(); } else { repoUuid = line; } ome.model.core.OriginalFile r = sf.getQueryService() .findByString(ome.model.core.OriginalFile.class, "hash", repoUuid); if (!(readOnly.isReadOnlyDb() || readOnly.isReadOnlyRepo())) { r = handleRepoChanges(r, line); } if (r == null) { throw new NullPointerException("No repository to open!"); } log.info(String.format("Opened repository %s (uuid=%s)", r.getName(), repoUuid)); return r; }
@Override public boolean isReadOnly(ReadOnlyStatus readOnly) { return readOnly.isReadOnlyDb(); } }
@Deprecated public AbstractRepositoryI(Ice.ObjectAdapter oa, Registry reg, Executor ex, Principal p, String repoDir, PublicRepositoryI servant) { this(oa, reg, ex, p, repoDir, new ReadOnlyStatus(false, false), servant); log.info("assuming read-write repository"); }
public void setReadOnly(ReadOnlyStatus readOnly) { this.readOnly = readOnly.isReadOnlyDb(); }
@Deprecated public ScriptRepositoryI(ObjectAdapter oa, Registry reg, Executor ex, Principal p, ScriptRepoHelper helper, PublicRepositoryI servant, Set<String> scriptRepoUuids) { this(oa, reg, ex, p, helper, new ReadOnlyStatus(false, false), servant, scriptRepoUuids); log.info("assuming read-write repository"); }
public BasicACLVoter(CurrentDetails cd, SystemTypes sysTypes, TokenHolder tokenHolder, SecurityFilter securityFilter, PolicyService policyService, Roles roles, LightAdminPrivileges adminPrivileges, SessionProvider sessionProvider, ReadOnlyStatus readOnly, Set<String> managedRepoUuids, Set<String> scriptRepoUuids, String fileRepoSecretKey) { this.currentUser = cd; this.sysTypes = sysTypes; this.securityFilter = securityFilter; this.tokenHolder = tokenHolder; this.roles = roles; this.policyService = policyService; this.adminPrivileges = adminPrivileges; this.sessionProvider = sessionProvider; this.isReadOnlyDb = readOnly.isReadOnlyDb(); this.managedRepoUuids = managedRepoUuids; this.scriptRepoUuids = scriptRepoUuids; this.fileRepoSecretKey = fileRepoSecretKey; }
/** * @see #ScriptRepoHelper(String, File, Executor, String, Principal, Roles) */ @Deprecated public ScriptRepoHelper(Executor ex, String sessionUuid, Roles roles) { this(ex, sessionUuid, roles, new ReadOnlyStatus(false, false)); log.info("assuming read-write repository"); }
/** * @param executor executor to use for configuration map check * @param preferences the OMERO configuration settings * @param readOnly the read-only status */ protected BaseDBCheck(Executor executor, PreferenceContext preferences, ReadOnlyStatus readOnly) { this.executor = executor; this.version = preferences.getProperty("omero.db.version"); this.patch = Integer.parseInt(preferences.getProperty("omero.db.patch")); /* these values may depend upon version and patch above */ configKey = "DB check " + getClass().getSimpleName(); configValue = getCheckDone(); configKeyValue = configKey + ": " + configValue; isReadOnlyDb = readOnly.isReadOnlyDb(); }