userBookmarkRowMapper = (rs, rowNum) -> {
diff --git a/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserDAOImpl.java b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserDAOImpl.java
index 1251154853..4e3ea919e5 100644
--- a/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserDAOImpl.java
+++ b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserDAOImpl.java
@@ -17,6 +17,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
@@ -86,6 +87,7 @@ public class HpcUserDAOImpl implements HpcUserDAO {
// The Spring JDBC Template instance.
@Autowired
+ @Qualifier("hpcOracleJdbcTemplate")
private JdbcTemplate jdbcTemplate = null;
// Encryptor.
diff --git a/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserNamedQueryDAOImpl.java b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserNamedQueryDAOImpl.java
index 8ee3217171..6a8853d560 100644
--- a/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserNamedQueryDAOImpl.java
+++ b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/oracle/impl/HpcUserNamedQueryDAOImpl.java
@@ -22,6 +22,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.IncorrectResultSizeDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -74,6 +75,7 @@ public class HpcUserNamedQueryDAOImpl implements HpcUserNamedQueryDAO {
// The Spring JDBC Template instance.
@Autowired
+ @Qualifier("hpcOracleJdbcTemplate")
private JdbcTemplate jdbcTemplate = null;
// Encryptor.
diff --git a/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/trino/impl/HpcExternalArchiveDAOImpl.java b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/trino/impl/HpcExternalArchiveDAOImpl.java
new file mode 100644
index 0000000000..632028c644
--- /dev/null
+++ b/src/hpc-server/hpc-dao-impl/src/main/java/gov/nih/nci/hpc/dao/trino/impl/HpcExternalArchiveDAOImpl.java
@@ -0,0 +1,110 @@
+/**
+ * HpcExternalArchiveDAOImpl.java
+ *
+ *
+ * Copyright SVG, Inc. Copyright Leidos Biomedical Research, Inc
+ *
+ *
+ * Distributed under the OSI-approved BSD 3-Clause License. See
+ * http://ncip.github.com/HPC/LICENSE.txt for details.
+ */
+package gov.nih.nci.hpc.dao.trino.impl;
+
+import gov.nih.nci.hpc.dao.HpcExternalArchiveDAO;
+import gov.nih.nci.hpc.domain.error.HpcErrorType;
+import gov.nih.nci.hpc.domain.user.HpcIntegratedSystem;
+import gov.nih.nci.hpc.exception.HpcException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.dao.DataAccessException;
+import org.springframework.jdbc.core.JdbcTemplate;
+
+import java.util.List;
+
+/**
+ * HPC External Archive DAO Implementation.
+ *
+ *
This implementation queries external archives (VAST managed archives mounted via NFS on the
+ * DME server) to identify files that have not been accessed within a specified time period, for
+ * auto-tiering migration to S3 Glacier Deep Archive.
+ *
+ * @author Eran Rosenberg
+ */
+public class HpcExternalArchiveDAOImpl implements HpcExternalArchiveDAO {
+ // ---------------------------------------------------------------------//
+ // Constants
+ // ---------------------------------------------------------------------//
+
+ // SQL Queries.
+ private static final String GET_FILES_NOT_ACCESSED_SQL =
+ "select replace(search_path, ?, '') || name as path " +
+ "from \"vast-big-catalog-bucket|vast_big_catalog_schema\".\"vast_big_catalog_table\" " +
+ "where element_type = 'FILE' " +
+ "and atime < current_timestamp - INTERVAL '{months}' MONTH " +
+ "and search_path like ? " +
+ "and name NOT LIKE '%/'";
+
+ // ---------------------------------------------------------------------//
+ // Instance members
+ // ---------------------------------------------------------------------//
+
+ // The Spring JDBC Template instance.
+ @Autowired
+ @Qualifier("hpcTrinoJdbcTemplate")
+ private JdbcTemplate jdbcTemplate = null;
+
+ // The logger instance.
+ private static final Logger logger = LoggerFactory.getLogger(HpcExternalArchiveDAOImpl.class.getName());
+
+ // ---------------------------------------------------------------------//
+ // Constructors
+ // ---------------------------------------------------------------------//
+
+ /** Constructor for Spring Dependency Injection. */
+ private HpcExternalArchiveDAOImpl() {}
+
+ // ---------------------------------------------------------------------//
+ // Methods
+ // ---------------------------------------------------------------------//
+
+ // ---------------------------------------------------------------------//
+ // HpcExternalArchiveDAO Interface Implementation
+ // ---------------------------------------------------------------------//
+
+ @Override
+ public List getFilesNotAccessed(String searchPath, Integer monthsNotAccessed) throws HpcException {
+ try {
+ return jdbcTemplate.queryForList(
+ GET_FILES_NOT_ACCESSED_SQL.replace("{months}", monthsNotAccessed.toString()),
+ String.class, searchPath, searchPath);
+
+ } catch (DataAccessException e) {
+ throw new HpcException(
+ "Failed to query files not accessed in external archive [searchPath=" + searchPath +
+ ", monthsNotAccessed=" + monthsNotAccessed + "]: " + e.getMessage(),
+ HpcErrorType.DATABASE_ERROR, HpcIntegratedSystem.VAST, e);
+ }
+ }
+
+ // ---------------------------------------------------------------------//
+ // Helper Methods
+ // ---------------------------------------------------------------------//
+
+ /**
+ * Verify connection to Trino DB. Called by Spring as init-method.
+ *
+ * @throws HpcException If it failed to connect to the database.
+ */
+ @SuppressWarnings("unused")
+ private void dbConnect() throws HpcException {
+ try {
+ jdbcTemplate.getDataSource().getConnection();
+
+ } catch (Exception e) {
+ throw new HpcException("Failed to connect to Trino DB. Check connection & credentials config",
+ HpcErrorType.DATABASE_ERROR, HpcIntegratedSystem.VAST, e);
+ }
+ }
+}
diff --git a/src/hpc-server/hpc-dao-impl/src/main/resources/META-INF/spring/hpc-dao-impl-beans-configuration.xml b/src/hpc-server/hpc-dao-impl/src/main/resources/META-INF/spring/hpc-dao-impl-beans-configuration.xml
index 4310f996e5..18777cc78b 100644
--- a/src/hpc-server/hpc-dao-impl/src/main/resources/META-INF/spring/hpc-dao-impl-beans-configuration.xml
+++ b/src/hpc-server/hpc-dao-impl/src/main/resources/META-INF/spring/hpc-dao-impl-beans-configuration.xml
@@ -35,11 +35,25 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -70,5 +84,6 @@
-
+
\ No newline at end of file
diff --git a/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.23.0/hpc_auto_tiering.sql b/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.23.0/hpc_auto_tiering.sql
new file mode 100644
index 0000000000..a835ddb048
--- /dev/null
+++ b/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.23.0/hpc_auto_tiering.sql
@@ -0,0 +1,42 @@
+--
+-- hpc_auto_tiering.sql
+--
+-- Copyright SVG, Inc.
+-- Copyright Leidos Biomedical Research, Inc
+--
+-- Distributed under the OSI-approved BSD 3-Clause License.
+-- See http://ncip.github.com/HPC/LICENSE.txt for details.
+--
+--
+-- @author Eran Rosenberg
+--
+
+-- HPC_S3_ARCHIVE_CONFIGURATION
+ALTER TABLE HPC_S3_ARCHIVE_CONFIGURATION add (
+ AUTO_TIERING_SEARCH_PATH VARCHAR2(2700)
+ );
+COMMENT ON COLUMN HPC_S3_ARCHIVE_CONFIGURATION.AUTO_TIERING_SEARCH_PATH IS 'The search path for auto-tiering external archive files';
+
+ALTER TABLE HPC_S3_ARCHIVE_CONFIGURATION add (
+ AUTO_TIERING_INACTIVITY_MONTHS NUMBER(10)
+ );
+COMMENT ON COLUMN HPC_S3_ARCHIVE_CONFIGURATION.AUTO_TIERING_INACTIVITY_MONTHS IS 'The inactivity period in months before files are auto-tiered to Glacier Deep Archive';
+
+-- HPC_DATA_MANAGEMENT_CONFIGURATION
+ALTER TABLE HPC_DATA_MANAGEMENT_CONFIGURATION add (
+ S3_AUTO_TIERING_ARCHIVE_CONFIGURATION_ID VARCHAR2(50)
+ );
+COMMENT ON COLUMN HPC_DATA_MANAGEMENT_CONFIGURATION.S3_AUTO_TIERING_ARCHIVE_CONFIGURATION_ID IS 'The S3 archive configuration ID for auto-tiering external archive into';
+
+-- HPC_DATA_MIGRATION_TASK
+ALTER TABLE HPC_DATA_MIGRATION_TASK add (
+ FROM_S3_ARCHIVE_LOCATION_FILE_CONTAINER_ID VARCHAR2(50)
+ );
+COMMENT ON COLUMN HPC_DATA_MIGRATION_TASK.FROM_S3_ARCHIVE_LOCATION_FILE_CONTAINER_ID IS 'The archive file container ID (bucket) migrating from';
+
+ALTER TABLE HPC_DATA_MIGRATION_TASK add (
+ FROM_S3_ARCHIVE_LOCATION_FILE_ID VARCHAR2(2700)
+ );
+COMMENT ON COLUMN HPC_DATA_MIGRATION_TASK.FROM_S3_ARCHIVE_LOCATION_FILE_ID IS 'The archive file ID (object ID) migrating from';
+
+
diff --git a/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.24.0/hpc_auto_tiering.sql b/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.24.0/hpc_auto_tiering.sql
new file mode 100644
index 0000000000..a835ddb048
--- /dev/null
+++ b/src/hpc-server/hpc-dao-impl/src/main/scripts/migration/release-3.24.0/hpc_auto_tiering.sql
@@ -0,0 +1,42 @@
+--
+-- hpc_auto_tiering.sql
+--
+-- Copyright SVG, Inc.
+-- Copyright Leidos Biomedical Research, Inc
+--
+-- Distributed under the OSI-approved BSD 3-Clause License.
+-- See http://ncip.github.com/HPC/LICENSE.txt for details.
+--
+--
+-- @author Eran Rosenberg
+--
+
+-- HPC_S3_ARCHIVE_CONFIGURATION
+ALTER TABLE HPC_S3_ARCHIVE_CONFIGURATION add (
+ AUTO_TIERING_SEARCH_PATH VARCHAR2(2700)
+ );
+COMMENT ON COLUMN HPC_S3_ARCHIVE_CONFIGURATION.AUTO_TIERING_SEARCH_PATH IS 'The search path for auto-tiering external archive files';
+
+ALTER TABLE HPC_S3_ARCHIVE_CONFIGURATION add (
+ AUTO_TIERING_INACTIVITY_MONTHS NUMBER(10)
+ );
+COMMENT ON COLUMN HPC_S3_ARCHIVE_CONFIGURATION.AUTO_TIERING_INACTIVITY_MONTHS IS 'The inactivity period in months before files are auto-tiered to Glacier Deep Archive';
+
+-- HPC_DATA_MANAGEMENT_CONFIGURATION
+ALTER TABLE HPC_DATA_MANAGEMENT_CONFIGURATION add (
+ S3_AUTO_TIERING_ARCHIVE_CONFIGURATION_ID VARCHAR2(50)
+ );
+COMMENT ON COLUMN HPC_DATA_MANAGEMENT_CONFIGURATION.S3_AUTO_TIERING_ARCHIVE_CONFIGURATION_ID IS 'The S3 archive configuration ID for auto-tiering external archive into';
+
+-- HPC_DATA_MIGRATION_TASK
+ALTER TABLE HPC_DATA_MIGRATION_TASK add (
+ FROM_S3_ARCHIVE_LOCATION_FILE_CONTAINER_ID VARCHAR2(50)
+ );
+COMMENT ON COLUMN HPC_DATA_MIGRATION_TASK.FROM_S3_ARCHIVE_LOCATION_FILE_CONTAINER_ID IS 'The archive file container ID (bucket) migrating from';
+
+ALTER TABLE HPC_DATA_MIGRATION_TASK add (
+ FROM_S3_ARCHIVE_LOCATION_FILE_ID VARCHAR2(2700)
+ );
+COMMENT ON COLUMN HPC_DATA_MIGRATION_TASK.FROM_S3_ARCHIVE_LOCATION_FILE_ID IS 'The archive file ID (object ID) migrating from';
+
+
diff --git a/src/hpc-server/hpc-domain-model/pom.xml b/src/hpc-server/hpc-domain-model/pom.xml
index 3f14a0e9b6..b35d8a3772 100644
--- a/src/hpc-server/hpc-domain-model/pom.xml
+++ b/src/hpc-server/hpc-domain-model/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-domain-model
jar
diff --git a/src/hpc-server/hpc-domain-model/src/main/resources/schema/HpcDataManagement.xsd b/src/hpc-server/hpc-domain-model/src/main/resources/schema/HpcDataManagement.xsd
index 6d8124cb98..ca35f5d94d 100644
--- a/src/hpc-server/hpc-domain-model/src/main/resources/schema/HpcDataManagement.xsd
+++ b/src/hpc-server/hpc-domain-model/src/main/resources/schema/HpcDataManagement.xsd
@@ -54,7 +54,9 @@
-
+
+
+
@@ -68,6 +70,7 @@
type="hpc-domain-datatransfer:HpcDataTransferType" />
+
-
diff --git a/src/hpc-server/hpc-domain-types/pom.xml b/src/hpc-server/hpc-domain-types/pom.xml
index 647270c654..82b563923f 100644
--- a/src/hpc-server/hpc-domain-types/pom.xml
+++ b/src/hpc-server/hpc-domain-types/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-domain-types
jar
diff --git a/src/hpc-server/hpc-domain-types/src/main/resources/schema/HpcDataMigrationTypes.xsd b/src/hpc-server/hpc-domain-types/src/main/resources/schema/HpcDataMigrationTypes.xsd
index e7e95d9231..6b1d93e1b9 100644
--- a/src/hpc-server/hpc-domain-types/src/main/resources/schema/HpcDataMigrationTypes.xsd
+++ b/src/hpc-server/hpc-domain-types/src/main/resources/schema/HpcDataMigrationTypes.xsd
@@ -20,6 +20,7 @@
+
@@ -31,6 +32,7 @@
+
diff --git a/src/hpc-server/hpc-dto/pom.xml b/src/hpc-server/hpc-dto/pom.xml
index eb7032e951..1a37f9075b 100644
--- a/src/hpc-server/hpc-dto/pom.xml
+++ b/src/hpc-server/hpc-dto/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-dto
jar
diff --git a/src/hpc-server/hpc-integration-api/pom.xml b/src/hpc-server/hpc-integration-api/pom.xml
index dc80ca67df..b19386af0e 100644
--- a/src/hpc-server/hpc-integration-api/pom.xml
+++ b/src/hpc-server/hpc-integration-api/pom.xml
@@ -19,7 +19,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-integration-api
jar
diff --git a/src/hpc-server/hpc-integration-impl/pom.xml b/src/hpc-server/hpc-integration-impl/pom.xml
index 818778c737..7e467535bf 100644
--- a/src/hpc-server/hpc-integration-impl/pom.xml
+++ b/src/hpc-server/hpc-integration-impl/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-integration-impl
jar
diff --git a/src/hpc-server/hpc-integration-impl/src/main/java/gov/nih/nci/hpc/integration/irods/impl/HpcDataManagementProxyImpl.java b/src/hpc-server/hpc-integration-impl/src/main/java/gov/nih/nci/hpc/integration/irods/impl/HpcDataManagementProxyImpl.java
index 7f29b20cb1..c7852ca536 100644
--- a/src/hpc-server/hpc-integration-impl/src/main/java/gov/nih/nci/hpc/integration/irods/impl/HpcDataManagementProxyImpl.java
+++ b/src/hpc-server/hpc-integration-impl/src/main/java/gov/nih/nci/hpc/integration/irods/impl/HpcDataManagementProxyImpl.java
@@ -227,8 +227,16 @@ public void addMetadataToCollection(Object authenticatedToken, String path, List
}
if (!avuDatas.isEmpty()) {
- irodsConnection.getCollectionAO(authenticatedToken)
- .addBulkAVUMetadataToCollection(getAbsolutePath(path), avuDatas);
+ // Add bulk metadata to iRODS, and validate the result.
+ for (BulkAVUOperationResponse addAvuResponse : irodsConnection.getCollectionAO(authenticatedToken)
+ .addBulkAVUMetadataToCollection(getAbsolutePath(path), avuDatas)) {
+ if (addAvuResponse.getResultStatus() != ResultStatus.OK) {
+ // Add metadata failed.
+ String message = "Failed to add metadata to a collection [" + path + "]: "
+ + addAvuResponse.getResultStatus() + " - " + addAvuResponse.getMessage();
+ throw new HpcException(message, HpcErrorType.DATA_MANAGEMENT_ERROR, HpcIntegratedSystem.IRODS);
+ }
+ }
}
} catch (JargonException e) {
diff --git a/src/hpc-server/hpc-scheduler-migration/pom.xml b/src/hpc-server/hpc-scheduler-migration/pom.xml
index 3ce7fae7b9..8a26f450a3 100644
--- a/src/hpc-server/hpc-scheduler-migration/pom.xml
+++ b/src/hpc-server/hpc-scheduler-migration/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-scheduler-migration
war
diff --git a/src/hpc-server/hpc-scheduler-migration/src/main/java/gov/nih/nci/hpc/scheduler/migration/impl/HpcScheduledTasksImpl.java b/src/hpc-server/hpc-scheduler-migration/src/main/java/gov/nih/nci/hpc/scheduler/migration/impl/HpcScheduledTasksImpl.java
index 5ebe7aa5ef..e21ecb0377 100644
--- a/src/hpc-server/hpc-scheduler-migration/src/main/java/gov/nih/nci/hpc/scheduler/migration/impl/HpcScheduledTasksImpl.java
+++ b/src/hpc-server/hpc-scheduler-migration/src/main/java/gov/nih/nci/hpc/scheduler/migration/impl/HpcScheduledTasksImpl.java
@@ -102,6 +102,22 @@ private void processDataObjectMetadataUpdatetMigrationReceivedTask() {
dataMigrationBusService::processDataObjectMetadataUpdateMigrationReceived, logger);
}
+ /**
+ * Process auto-tiering task. Retrieves all data management configurations with auto-tiering enabled
+ * and creates a bulk auto-tiering migration task for each configuration.
+ */
+ @Scheduled(cron = "${hpc.scheduler.migration.cron.processAutoTiering.delay}")
+ private void processAutoTieringTask() {
+ execute("processAutoTiering()", dataMigrationBusService::processAutoTiering, logger);
+ }
+
+ /** process bulk auto-tiering migration task **/
+ @Scheduled(cron = "${hpc.scheduler.migration.cron.processBulkAutoTieringMigrationReceived.delay}")
+ private void processBulkAutoTieringMigrationReceivedTask() {
+ execute("processBulkAutoTieringMigrationReceived()",
+ dataMigrationBusService::processBulkAutoTieringMigrationReceived, logger);
+ }
+
/**
* Called by Spring dependency injection. Reset all active S3 upload/download in
* progress tasks, so they are restarted following a server restart.
diff --git a/src/hpc-server/hpc-scheduler-migration/src/main/resources/WEB-INF/spring/hpc-scheduler-migration.properties b/src/hpc-server/hpc-scheduler-migration/src/main/resources/WEB-INF/spring/hpc-scheduler-migration.properties
index 2edc3db681..68a86c0c5e 100644
--- a/src/hpc-server/hpc-scheduler-migration/src/main/resources/WEB-INF/spring/hpc-scheduler-migration.properties
+++ b/src/hpc-server/hpc-scheduler-migration/src/main/resources/WEB-INF/spring/hpc-scheduler-migration.properties
@@ -186,7 +186,7 @@ hpc.service.dataManagement.registrationResultsPageSize=100
hpc.service.dataManagement.deletedBasePath=/DME_Deleted_Archive
hpc.service.dataManagement.deletedDataObjectRetentionDays=730
hpc.service.event.invokerCollectionUpdateNotification=false
-hpc.service.dataMigration.serverIds=
+hpc.service.dataMigration.serverIds=server-id
hpc.service.serverId=server-id
#############################################################################
@@ -231,7 +231,7 @@ hpc.integration.ldap.userIdDomainName=nih.gov
# S3
hpc.integration.s3.executorThreadPoolSize=8
hpc.integration.s3.awsTransferManagerThreadPoolSize=8
-hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST
+hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST,VAST_NCIVS
hpc.integration.s3.minimumUploadPartSize=52428800
hpc.integration.s3.multipartUploadThreshold=52428800
hpc.integration.s3.restoreNumDays=2
@@ -260,12 +260,13 @@ hpc.integration.sps.URL=https://authproxyint.nih.gov/authazws/AuthRestService/au
hpc.integration.sps.resource=authproxyint.nih.gov/nihuser
hpc.integration.sps.domain=NIH
-
+hpc.integration.irods.basePath=/tempZone/home
#############################################################################
# DAO Properties.
#############################################################################
+# Oracle
hpc.dao.oracle.dbName=icatdev
hpc.dao.oracle.host=fsitgl-oradb02t.ncifcrf.gov
hpc.dao.oracle.port=1521
@@ -275,8 +276,15 @@ hpc.dao.oracle.url=jdbc:oracle:thin:@${hpc.dao.oracle.host}:${hpc.dao.oracle.por
hpc.dao.oracle.maxActive=50
hpc.dao.oracle.encryptor.key=***128-bit-key**
hpc.dao.jdbc.template.fetchSize=1000
-hpc.integration.irods.basePath=/tempZone/home
-
+
+# Trino
+hpc.dao.trino.host=trino.fairway.nci.nih.gov
+hpc.dao.trino.port=443
+hpc.dao.trino.username=ncif-hpcdm-svc
+hpc.dao.trino.password=< Configure Me >
+hpc.dao.trino.url=jdbc:trino://${hpc.dao.trino.host}:${hpc.dao.trino.port}/vast
+hpc.dao.trino.maxActive=10
+
#############################################################################
# Scheduler Properties.
#############################################################################
@@ -326,4 +334,5 @@ hpc.scheduler.migration.cron.processDataObjectListMigrationReceived.delay=25 0/1
hpc.scheduler.migration.cron.processCollectionListMigrationReceived.delay=35 0/1 * * * ?
hpc.scheduler.migration.cron.processBulkMetadataUpdatetMigrationReceived.delay=32 0/1 * * * ?
hpc.scheduler.migration.cron.processDataObjectMetadataUpdatetMigrationReceived.delay=38 0/1 * * * ?
-
+hpc.scheduler.migration.cron.processAutoTiering.delay=0 0 7 * * ?
+hpc.scheduler.migration.cron.processBulkAutoTieringMigrationReceived.delay=56 0/1 * * * ?
diff --git a/src/hpc-server/hpc-scheduler-migration/src/main/resources/logback.xml b/src/hpc-server/hpc-scheduler-migration/src/main/resources/logback.xml
index c5acd035ff..a22625e296 100644
--- a/src/hpc-server/hpc-scheduler-migration/src/main/resources/logback.xml
+++ b/src/hpc-server/hpc-scheduler-migration/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
-
+
${SCHEDULER_MIGRATION_SERVER_LOG}
diff --git a/src/hpc-server/hpc-scheduler/pom.xml b/src/hpc-server/hpc-scheduler/pom.xml
index 9ae56f7294..84e90eceb5 100644
--- a/src/hpc-server/hpc-scheduler/pom.xml
+++ b/src/hpc-server/hpc-scheduler/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-scheduler
war
diff --git a/src/hpc-server/hpc-scheduler/src/main/resources/WEB-INF/spring/hpc-scheduler.properties b/src/hpc-server/hpc-scheduler/src/main/resources/WEB-INF/spring/hpc-scheduler.properties
index 8f8ec1e238..87ba681602 100644
--- a/src/hpc-server/hpc-scheduler/src/main/resources/WEB-INF/spring/hpc-scheduler.properties
+++ b/src/hpc-server/hpc-scheduler/src/main/resources/WEB-INF/spring/hpc-scheduler.properties
@@ -221,7 +221,7 @@ hpc.integration.ldap.userIdDomainName=nih.gov
# S3
hpc.integration.s3.executorThreadPoolSize=8
hpc.integration.s3.awsTransferManagerThreadPoolSize=8
-hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST
+hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST,VAST_NCIVS
hpc.integration.s3.minimumUploadPartSize=52428800
hpc.integration.s3.multipartUploadThreshold=52428800
hpc.integration.s3.restoreNumDays=2
diff --git a/src/hpc-server/hpc-scheduler/src/main/resources/logback.xml b/src/hpc-server/hpc-scheduler/src/main/resources/logback.xml
index 3f46786803..2ba098af6d 100644
--- a/src/hpc-server/hpc-scheduler/src/main/resources/logback.xml
+++ b/src/hpc-server/hpc-scheduler/src/main/resources/logback.xml
@@ -1,7 +1,7 @@
-
+
${SCHEDULER_SERVER_LOG}
diff --git a/src/hpc-server/hpc-ws-rs-api/pom.xml b/src/hpc-server/hpc-ws-rs-api/pom.xml
index 2a1d99da46..84e4d1709b 100644
--- a/src/hpc-server/hpc-ws-rs-api/pom.xml
+++ b/src/hpc-server/hpc-ws-rs-api/pom.xml
@@ -19,7 +19,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-ws-rs-api
jar
diff --git a/src/hpc-server/hpc-ws-rs-api/src/main/java/gov/nih/nci/hpc/ws/rs/HpcDataMigrationRestService.java b/src/hpc-server/hpc-ws-rs-api/src/main/java/gov/nih/nci/hpc/ws/rs/HpcDataMigrationRestService.java
index 0c510faeff..7391ae31e1 100644
--- a/src/hpc-server/hpc-ws-rs-api/src/main/java/gov/nih/nci/hpc/ws/rs/HpcDataMigrationRestService.java
+++ b/src/hpc-server/hpc-ws-rs-api/src/main/java/gov/nih/nci/hpc/ws/rs/HpcDataMigrationRestService.java
@@ -126,4 +126,16 @@ public Response retryDataObjectsOrCollectionsMigrationTask(@PathParam("taskId")
@Consumes("application/json; charset=UTF-8, application/xml; charset=UTF-8")
@Produces("application/json; charset=UTF-8, application/xml; charset=UTF-8")
public Response migrateMetadata(HpcMetadataMigrationRequestDTO metadataMigrationRequest);
+
+ /**
+ * Process auto-tiering for a specific data management configuration.
+ *
+ * @param configurationId The data management configuration ID.
+ * @return The REST service response.
+ */
+ @POST
+ @Path("/autoTiering/{configurationId}")
+ @Consumes("application/json; charset=UTF-8, application/xml; charset=UTF-8")
+ @Produces("application/json; charset=UTF-8, application/xml; charset=UTF-8")
+ public Response processAutoTiering(@PathParam("configurationId") String configurationId);
}
diff --git a/src/hpc-server/hpc-ws-rs-impl/pom.xml b/src/hpc-server/hpc-ws-rs-impl/pom.xml
index 7a285d72e0..62bb52b1cb 100644
--- a/src/hpc-server/hpc-ws-rs-impl/pom.xml
+++ b/src/hpc-server/hpc-ws-rs-impl/pom.xml
@@ -17,7 +17,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-ws-rs-impl
war
diff --git a/src/hpc-server/hpc-ws-rs-impl/src/main/java/gov/nih/nci/hpc/ws/rs/impl/HpcDataMigrationRestServiceImpl.java b/src/hpc-server/hpc-ws-rs-impl/src/main/java/gov/nih/nci/hpc/ws/rs/impl/HpcDataMigrationRestServiceImpl.java
index 74b494850a..0d0162f8d7 100644
--- a/src/hpc-server/hpc-ws-rs-impl/src/main/java/gov/nih/nci/hpc/ws/rs/impl/HpcDataMigrationRestServiceImpl.java
+++ b/src/hpc-server/hpc-ws-rs-impl/src/main/java/gov/nih/nci/hpc/ws/rs/impl/HpcDataMigrationRestServiceImpl.java
@@ -147,5 +147,17 @@ public Response migrateMetadata(HpcMetadataMigrationRequestDTO metadataMigration
return okResponse(migrationResponse, false);
}
-
+
+ @Override
+ public Response processAutoTiering(String configurationId) {
+ HpcMigrationResponseDTO migrationResponse = null;
+ try {
+ migrationResponse = dataMigrationBusService.processAutoTiering(configurationId);
+
+ } catch (HpcException e) {
+ return errorResponse(e);
+ }
+
+ return okResponse(migrationResponse, false);
+ }
}
diff --git a/src/hpc-server/hpc-ws-rs-impl/src/main/resources/WEB-INF/spring/hpc-server.properties b/src/hpc-server/hpc-ws-rs-impl/src/main/resources/WEB-INF/spring/hpc-server.properties
index e86e6bbe81..1b764aed5e 100644
--- a/src/hpc-server/hpc-ws-rs-impl/src/main/resources/WEB-INF/spring/hpc-server.properties
+++ b/src/hpc-server/hpc-ws-rs-impl/src/main/resources/WEB-INF/spring/hpc-server.properties
@@ -236,7 +236,7 @@ hpc.integration.ldap.userIdDomainName=nih.gov
# S3
hpc.integration.s3.executorThreadPoolSize=8
hpc.integration.s3.awsTransferManagerThreadPoolSize=8
-hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST
+hpc.integration.s3.pathStyleAccessEnabledProviders=CLOUDIAN,VAST,VAST_NCIVS
hpc.integration.s3.minimumUploadPartSize=52428800
hpc.integration.s3.multipartUploadThreshold=52428800
hpc.integration.s3.restoreNumDays=2
diff --git a/src/hpc-server/hpc-ws-rs-test/pom.xml b/src/hpc-server/hpc-ws-rs-test/pom.xml
index 0ea3106248..1f81933589 100644
--- a/src/hpc-server/hpc-ws-rs-test/pom.xml
+++ b/src/hpc-server/hpc-ws-rs-test/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc-server
- 3.23.0
+ 3.24.0
hpc-ws-rs-test
diff --git a/src/hpc-server/pom.xml b/src/hpc-server/pom.xml
index 364abdbfa2..bde6a2b3ce 100644
--- a/src/hpc-server/pom.xml
+++ b/src/hpc-server/pom.xml
@@ -18,7 +18,7 @@
gov.nih.nci.hpc
hpc
- 3.23.0
+ 3.24.0
hpc-server
pom
@@ -41,7 +41,7 @@
1.12.420
2.32.31
0.38.11
- 2.18.1
+ 2.18.6
4.3.3.0-RELEASE
0.12.5
1.79
@@ -55,6 +55,7 @@
5.4.0
4.8.0
8.14.0
+ 476
@@ -492,6 +493,11 @@
bucket4j_jdk17-core
${bucket4j.version}