@Override public void configure(final TaskConfiguration configuration) { super.configure(configuration); this.location = configuration.getString(DatabaseBackupTaskDescriptor.BACKUP_LOCATION); }
private boolean isRebuildTask(final String repositoryName, final TaskInfo taskInfo) { return RebuildBrowseNodesTaskDescriptor.TYPE_ID.equals(taskInfo.getConfiguration().getTypeId()) && repositoryName .equals(taskInfo.getConfiguration().getString(RebuildBrowseNodesTaskDescriptor.REPOSITORY_NAME_FIELD_ID)); }
private void launchNewTask(final String repositoryName) { TaskConfiguration configuration = taskScheduler .createTaskConfigurationInstance(RebuildBrowseNodesTaskDescriptor.TYPE_ID); configuration.setString(RebuildBrowseNodesTaskDescriptor.REPOSITORY_NAME_FIELD_ID, repositoryName); configuration.setName("Rebuild repository browse tree - (" + repositoryName + ")"); taskScheduler.submit(configuration); }
@Override protected Void execute() throws Exception { String blobStoreId = checkNotNull(getConfiguration().getString(BLOB_STORE_NAME_FIELD_ID)); boolean dryRun = getConfiguration().getBoolean(DRY_RUN, false); boolean restoreBlobs = getConfiguration().getBoolean(RESTORE_BLOBS, false); boolean undeleteBlobs = getConfiguration().getBoolean(UNDELETE_BLOBS, false); boolean integrityCheck = getConfiguration().getBoolean(INTEGRITY_CHECK, false); restore(blobStoreId, restoreBlobs, undeleteBlobs, dryRun); blobStoreIntegrityCheck(integrityCheck, blobStoreId); return null; }
@Override protected void execute(final Repository repository) { if (hasBeenProcessed(repository)) { log.debug("Skipping repository '{}'; it has already been processed"); return; } if (isGroupRepository(repository)) { markProcessed(repository); // nothing to do for the group itself repository.facet(GroupFacet.class).members().stream().filter(this::appliesTo).forEach(this::execute); } else { log.info("Executing removal of snapshots on repository '{}'", repository.getName()); TaskConfiguration config = getConfiguration(); RemoveSnapshotsConfig removeSnapshotsConfig = new RemoveSnapshotsConfig( config.getInteger(MINIMUM_SNAPSHOT_RETAINED_COUNT, 1), config.getInteger(SNAPSHOT_RETENTION_DAYS, 30), config.getBoolean(REMOVE_IF_RELEASED, false), config.getInteger(GRACE_PERIOD, -1)); repository.facet(RemoveSnapshotsFacet.class).removeSnapshots(removeSnapshotsConfig); markProcessed(repository); } }
private void removeOldRebuildTasks() { taskScheduler.listsTasks().stream() .filter(task -> RebuildAssetUploadMetadataTaskDescriptor.TYPE_ID.equals(task.getConfiguration().getTypeId())) .forEach(TaskInfo::remove); } }
@Override public void initializeConfiguration(final TaskConfiguration configuration) { // cover upgrade from non-HA to HA: task will warn until a node is chosen configuration.setString(LIMIT_NODE_KEY, ""); } }
private void createCleanupTask() { if (!doesTaskExist()) { TaskConfiguration taskConfig = taskScheduler.createTaskConfigurationInstance(CleanupTaskDescriptor.TYPE_ID); taskConfig.setName(TASK_NAME); try { Cron run1amEveryDay = taskScheduler.getScheduleFactory().cron(new Date(), "0 0 1 * * ?"); taskScheduler.scheduleTask(taskConfig, run1amEveryDay); } catch (RuntimeException e) { log.error("Problem scheduling cleanup task", e); } } }
@Override protected void execute(final Repository repository) { repository.facet(PurgeUnusedSnapshotsFacet.class) .purgeUnusedSnapshots(getConfiguration().getInteger(LAST_USED_FIELD_ID, -1)); }
@Override protected void execute(final Repository repository) { MavenHostedFacet mavenHostedFacet = repository.facet(MavenHostedFacet.class); mavenHostedFacet.rebuildMetadata( getConfiguration().getString(GROUPID_FIELD_ID), getConfiguration().getString(ARTIFACTID_FIELD_ID), getConfiguration().getString(BASEVERSION_FIELD_ID), getConfiguration().getBoolean(REBUILD_CHECKSUMS, false) ); }
private boolean doesTaskExist() { return taskScheduler.listsTasks().stream() .anyMatch(info -> CleanupTaskDescriptor.TYPE_ID.equals(info.getConfiguration().getTypeId())); } }
/** * Schedule one-off background task to rebuild the indexes of all repositories. */ private void rebuildIndex() { TaskConfiguration taskConfig = taskScheduler.createTaskConfigurationInstance(RebuildIndexTaskDescriptor.TYPE_ID); taskConfig.setString(RepositoryTaskSupport.REPOSITORY_NAME_FIELD_ID, "*"); try { taskScheduler.submit(taskConfig); } catch (RuntimeException e) { log.warn("Problem scheduling rebuild of repository indexes", e); } }
@Override protected void execute(final Repository repository) { repository.facet(PurgeUnusedFacet.class).purgeUnused(getConfiguration().getInteger(LAST_USED_FIELD_ID, -1)); }
/** * Extract repository field out of configuration. */ protected String getRepositoryField() { return getConfiguration().getString(REPOSITORY_NAME_FIELD_ID); }
/** * Returns whether or not a reindexing task exists for a particular npm repository. */ private boolean hasRunningTask(final Repository repository) { for (TaskInfo taskInfo : taskScheduler.listsTasks()) { TaskConfiguration taskConfiguration = taskInfo.getConfiguration(); String typeId = taskConfiguration.getTypeId(); String repositoryName = taskConfiguration.getString(REPOSITORY_NAME_FIELD_ID); if (ReindexNpmRepositoryTaskDescriptor.TYPE_ID.equals(typeId) && repository.getName().equals(repositoryName) && TaskInfo.State.RUNNING.equals(taskInfo.getCurrentState().getState())) { return true; } } return false; } }
/** * Schedules and immediately runs a task to reindex a particular npm repository. */ private void runReindexTaskForRepository(final Repository repository) { TaskConfiguration configuration = taskScheduler .createTaskConfigurationInstance(ReindexNpmRepositoryTaskDescriptor.TYPE_ID); configuration.setString(REPOSITORY_NAME_FIELD_ID, repository.getName()); configuration.setName("Reindex npm repository - (" + repository.getName() + ")"); taskScheduler.submit(configuration); }
@Override protected void doStart() throws Exception { if (!taskScheduler.listsTasks().stream().anyMatch((info) -> TYPE_ID.equals(info.getConfiguration().getTypeId()))) { TaskConfiguration configuration = taskScheduler.createTaskConfigurationInstance(TYPE_ID); Schedule schedule = taskScheduler.getScheduleFactory().cron(new Date(), storageCleanupCron); taskScheduler.scheduleTask(configuration, schedule); } } }
@Override public void configure(final TaskConfiguration configuration) { super.configure(configuration); this.source = configuration.getString(ScriptTaskDescriptor.SOURCE); }
private String getBlobStoreField() { return getConfiguration().getString(BLOB_STORE_NAME_FIELD_ID); } }
@Override protected Object execute() throws Exception { log.debug("Executing script"); ImmutableMap<String, Object> customBindings = ImmutableMap.<String, Object>builder() .put("log", LoggerFactory.getLogger(ScriptTask.class)) .put("task", this) .build(); // execution script log.debug("Evaluating source: {}", source); Object result = scripts.eval(getConfiguration().getString(ScriptTaskDescriptor.LANGUAGE), source, customBindings); log.trace("Result: {}", result); return result; } }