You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ya...@apache.org on 2026/04/01 19:04:45 UTC
(airavata) 12/49: refactor: migrate airavata-api from Thrift model types to proto types
This is an automated email from the ASF dual-hosted git repository.
yasith pushed a commit to branch feat/grpc-armeria-migration
in repository https://gitbox.apache.org/repos/asf/airavata.git
commit d0c37c289eeba628f53901a0f953c74bad54ab24
Author: yasithdev <ya...@icloud.com>
AuthorDate: Tue Mar 31 08:15:45 2026 -0400
refactor: migrate airavata-api from Thrift model types to proto types
Replaced Thrift-generated model types with proto equivalents across
execution/, compute/, storage/, credential/, sharing/, common/,
and security/ packages. Converted mutable Thrift POJOs to immutable
proto builder patterns. Deleted unused Thrift client utilities.
---
.../common/config/ApplicationSettings.java | 14 -
.../airavata/common/security/UserContext.java | 2 +-
.../common/util/AiravataClientFactory.java | 81 ---
.../airavata/common/util/ThriftClientPool.java | 258 ---------
.../airavata/compute/mapper/ComputeMapper.java | 60 +-
.../compute/model/ApplicationDeploymentEntity.java | 2 +-
.../compute/model/ApplicationInputEntity.java | 2 +-
.../compute/model/ApplicationOutputEntity.java | 2 +-
.../compute/model/CloudJobSubmissionEntity.java | 4 +-
.../model/ComputeResourceFileSystemEntity.java | 2 +-
.../compute/model/ComputeResourceFileSystemPK.java | 2 +-
.../model/ComputeResourcePreferenceEntity.java | 4 +-
.../compute/model/GlobusSubmissionEntity.java | 2 +-
.../model/GroupComputeResourcePrefEntity.java | 4 +-
.../compute/model/JobManagerCommandEntity.java | 2 +-
.../compute/model/JobManagerCommandPK.java | 2 +-
.../model/JobSubmissionInterfaceEntity.java | 2 +-
.../compute/model/LocalSubmissionEntity.java | 2 +-
.../compute/model/ParallelismCommandEntity.java | 2 +-
.../compute/model/ParallelismCommandPK.java | 2 +-
.../compute/model/ResourceJobManagerEntity.java | 2 +-
.../compute/model/SshJobSubmissionEntity.java | 2 +-
.../compute/model/UnicoreSubmissionEntity.java | 2 +-
.../ApplicationDeploymentRepository.java | 15 +-
.../repository/ApplicationInputRepository.java | 2 +-
.../repository/ApplicationInterfaceRepository.java | 24 +-
.../repository/ApplicationModuleRepository.java | 2 +-
.../repository/ApplicationOutputRepository.java | 2 +-
.../repository/BatchQueuePolicyRepository.java | 2 +-
.../compute/repository/BatchQueueRepository.java | 2 +-
.../ComputeResourcePolicyRepository.java | 2 +-
.../repository/ComputeResourcePrefRepository.java | 2 +-
.../repository/ComputeResourceRepository.java | 119 ++--
.../repository/GatewayGroupsRepository.java | 2 +-
.../repository/GroupResourceProfileRepository.java | 148 +++--
.../repository/GrpComputePrefRepository.java | 56 +-
.../repository/GwyResourceProfileRepository.java | 6 +-
.../JobSubmissionInterfaceRepository.java | 2 +-
.../compute/repository/ParserInputRepository.java | 2 +-
.../compute/repository/ParserOutputRepository.java | 2 +-
.../compute/repository/ParserRepository.java | 2 +-
.../repository/ParsingTemplateRepository.java | 2 +-
.../repository/ResourceJobManagerRepository.java | 28 +-
.../UserComputeResourcePreferenceRepository.java | 2 +-
.../repository/UserResourceProfileRepository.java | 6 +-
.../compute/service/ApplicationCatalogService.java | 30 +-
.../service/GatewayResourceProfileService.java | 38 +-
.../service/GroupResourceProfileService.java | 18 +-
.../airavata/compute/service/ParserService.java | 4 +-
.../airavata/compute/service/ResourceService.java | 45 +-
.../service/UserResourceProfileService.java | 8 +-
.../task/AiravataCustomCommandOutputParser.java | 2 +-
.../compute/task/DefaultJobSubmissionTask.java | 106 ++--
.../compute/task/ForkJobConfiguration.java | 6 +-
.../compute/task/ForkJobSubmissionTask.java | 48 +-
.../airavata/compute/task/ForkOutputParser.java | 2 +-
.../airavata/compute/task/GroovyMapBuilder.java | 63 +--
.../compute/task/HTCondorJobConfiguration.java | 22 +-
.../compute/task/HTCondorOutputParser.java | 12 +-
.../apache/airavata/compute/task/JobFactory.java | 14 +-
.../airavata/compute/task/JobSubmissionTask.java | 30 +-
.../org/apache/airavata/compute/task/JobUtil.java | 2 +-
.../airavata/compute/task/LSFJobConfiguration.java | 6 +-
.../airavata/compute/task/LSFOutputParser.java | 10 +-
.../compute/task/LocalJobSubmissionTask.java | 15 +-
.../apache/airavata/compute/task/OutputParser.java | 2 +-
.../airavata/compute/task/PBSJobConfiguration.java | 6 +-
.../airavata/compute/task/PBSOutputParser.java | 8 +-
.../compute/task/SlurmJobConfiguration.java | 24 +-
.../airavata/compute/task/SlurmOutputParser.java | 10 +-
.../airavata/compute/task/UGEJobConfiguration.java | 6 +-
.../airavata/compute/task/UGEOutputParser.java | 10 +-
.../compute/task/aws/AWSCompletingTask.java | 2 +-
.../compute/task/aws/AWSJobSubmissionTask.java | 78 +--
.../compute/task/aws/AWSProcessContextManager.java | 25 +-
.../airavata/compute/task/aws/AWSTaskUtil.java | 4 +-
.../compute/task/aws/CreateEC2InstanceTask.java | 17 +-
.../apache/airavata/compute/util/AgentAdaptor.java | 4 +-
.../airavata/compute/util/AppDeploymentUtil.java | 24 +-
.../airavata/compute/util/AppInterfaceUtil.java | 50 +-
.../util/GroupComputeResourcePreferenceUtil.java | 18 +-
.../airavata/compute/util/SSHJAgentAdaptor.java | 42 +-
.../airavata/compute/util/SshAgentAdaptor.java | 8 +-
.../airavata/credential/task/EnvSetupTask.java | 2 +-
.../execution/handler/RegistryServerHandler.java | 622 +++++++++++----------
.../handler/RegistryServiceDBEventHandler.java | 35 +-
.../RegistryServiceDBEventMessagingFactory.java | 10 +-
.../airavata/execution/mapper/ExecutionMapper.java | 118 ++--
.../airavata/execution/model/ExperimentEntity.java | 4 +-
.../execution/model/ExperimentInputEntity.java | 2 +-
.../execution/model/ExperimentOutputEntity.java | 2 +-
.../execution/model/ExperimentStatusEntity.java | 2 +-
.../airavata/execution/model/GatewayEntity.java | 2 +-
.../airavata/execution/model/JobStatusEntity.java | 2 +-
.../execution/model/NotificationEntity.java | 2 +-
.../execution/model/ProcessInputEntity.java | 2 +-
.../execution/model/ProcessOutputEntity.java | 2 +-
.../execution/model/ProcessStatusEntity.java | 2 +-
.../airavata/execution/model/TaskEntity.java | 2 +-
.../airavata/execution/model/TaskStatusEntity.java | 2 +-
.../workflow/AiravataWorkflowStatusEntity.java | 2 +-
.../model/workflow/ApplicationStatusEntity.java | 2 +-
.../execution/model/workflow/EdgeEntity.java | 2 +-
.../model/workflow/HandlerInputEntity.java | 2 +-
.../model/workflow/HandlerOutputEntity.java | 2 +-
.../execution/model/workflow/NodeEntity.java | 2 +-
.../execution/model/workflow/PortEntity.java | 2 +-
.../model/workflow/WorkflowConnectionEntity.java | 2 +-
.../model/workflow/WorkflowHandlerEntity.java | 2 +-
.../monitor/AiravataCustomMailParser.java | 2 +-
.../execution/monitor/ClusterStatusMonitorJob.java | 32 +-
.../execution/monitor/ComputeResourceMonitor.java | 8 +-
.../execution/monitor/EmailBasedMonitor.java | 4 +-
.../execution/monitor/HTCondorEmailParser.java | 4 +-
.../execution/monitor/JobStateValidator.java | 2 +-
.../execution/monitor/JobStatusResult.java | 2 +-
.../monitor/JobStatusResultDeserializer.java | 2 +-
.../airavata/execution/monitor/LSFEmailParser.java | 2 +-
.../airavata/execution/monitor/MonitoringJob.java | 39 +-
.../airavata/execution/monitor/PBSEmailParser.java | 2 +-
.../execution/monitor/RealtimeJobStatusParser.java | 4 +-
.../execution/monitor/RealtimeMonitor.java | 2 +-
.../airavata/execution/monitor/ResourceConfig.java | 2 +-
.../execution/monitor/SLURMEmailParser.java | 2 +-
.../airavata/execution/monitor/UGEEmailParser.java | 2 +-
.../orchestrator/AbstractOrchestrator.java | 4 +-
.../execution/orchestrator/AdaptorSupport.java | 4 +-
.../execution/orchestrator/AdaptorSupportImpl.java | 4 +-
.../execution/orchestrator/AgentStore.java | 4 +-
.../execution/orchestrator/AiravataTask.java | 168 +++---
.../orchestrator/BatchQueueValidator.java | 174 +++---
.../orchestrator/DefaultHostScheduler.java | 2 +-
.../orchestrator/ExperimentStatusValidator.java | 35 +-
.../orchestrator/GFACPassiveJobSubmitter.java | 19 +-
.../GroupResourceProfileValidator.java | 113 ++--
.../execution/orchestrator/HostScheduler.java | 2 +-
.../orchestrator/JobMetadataValidator.java | 6 +-
.../execution/orchestrator/Orchestrator.java | 11 +-
.../orchestrator/OrchestratorClientFactory.java | 2 +-
.../orchestrator/OrchestratorClientSample.java | 48 +-
.../orchestrator/OrchestratorServerUtils.java | 23 +-
.../execution/orchestrator/OrchestratorUtils.java | 60 +-
.../orchestrator/ParserWorkflowManager.java | 22 +-
.../orchestrator/PostWorkflowManager.java | 58 +-
.../execution/orchestrator/PreWorkflowManager.java | 41 +-
.../orchestrator/SimpleOrchestratorImpl.java | 440 ++++++++-------
.../execution/orchestrator/TaskContext.java | 146 ++---
.../execution/orchestrator/TaskFactory.java | 2 +-
.../execution/orchestrator/WorkflowManager.java | 25 +-
.../repository/ExperimentErrorRepository.java | 6 +-
.../repository/ExperimentInputRepository.java | 6 +-
.../repository/ExperimentOutputRepository.java | 6 +-
.../execution/repository/ExperimentRepository.java | 46 +-
.../repository/ExperimentStatusRepository.java | 8 +-
.../repository/ExperimentSummaryRepository.java | 6 +-
.../execution/repository/GatewayRepository.java | 2 +-
.../GatewayUsageReportingCommandRepository.java | 2 +-
.../execution/repository/JobRepository.java | 14 +-
.../execution/repository/JobStatusRepository.java | 8 +-
.../repository/NotificationRepository.java | 2 +-
.../repository/ProcessErrorRepository.java | 4 +-
.../repository/ProcessInputRepository.java | 6 +-
.../repository/ProcessOutputRepository.java | 6 +-
.../execution/repository/ProcessRepository.java | 47 +-
.../repository/ProcessStatusRepository.java | 10 +-
.../repository/ProcessWorkflowRepository.java | 4 +-
.../execution/repository/ProjectRepository.java | 6 +-
.../repository/QueueStatusRepository.java | 2 +-
.../execution/repository/TaskErrorRepository.java | 4 +-
.../execution/repository/TaskRepository.java | 18 +-
.../execution/repository/TaskStatusRepository.java | 8 +-
.../execution/repository/UserRepository.java | 2 +-
.../execution/repository/WorkflowRepository.java | 8 +-
.../scheduler/ComputeResourceSelectionPolicy.java | 2 +-
.../ComputeResourceSelectionPolicyImpl.java | 2 +-
.../execution/scheduler/DataAnalyzerImpl.java | 7 +-
.../DefaultComputeResourceSelectionPolicy.java | 14 +-
.../scheduler/ExponentialBackOffReScheduler.java | 72 +--
.../scheduler/MultipleComputeResourcePolicy.java | 12 +-
.../execution/scheduler/ProcessScannerImpl.java | 4 +-
.../execution/scheduler/ProcessSchedulerImpl.java | 70 +--
.../airavata/execution/scheduler/ReScheduler.java | 4 +-
.../apache/airavata/execution/scheduler/Utils.java | 40 +-
.../execution/service/ExperimentService.java | 78 +--
.../airavata/execution/service/GatewayService.java | 4 +-
.../execution/service/NotificationService.java | 2 +-
.../airavata/execution/service/ProjectService.java | 4 +-
.../execution/task/CancelCompletingTask.java | 2 +-
.../airavata/execution/task/CompletingTask.java | 4 +-
.../airavata/execution/task/DataParsingTask.java | 59 +-
.../execution/task/JobVerificationTask.java | 6 +-
.../execution/task/RemoteJobCancellationTask.java | 10 +-
.../execution/util/AppCatalogDBInitConfig.java | 2 +-
.../execution/util/ExpCatalogDBInitConfig.java | 6 +-
.../execution/util/ExperimentModelUtil.java | 106 ++--
.../airavata/execution/util/ProjectModelUtil.java | 14 +-
.../airavata/execution/util/QueryConstants.java | 2 +-
.../execution/util/cpi/ApplicationDeployment.java | 2 +-
.../execution/util/cpi/ApplicationInterface.java | 8 +-
.../execution/util/cpi/ComputeResource.java | 6 +-
.../execution/util/cpi/DataProductInterface.java | 2 +-
.../util/cpi/DataReplicaLocationInterface.java | 2 +-
.../execution/util/cpi/GwyResourceProfile.java | 6 +-
.../execution/util/cpi/StorageResource.java | 2 +-
.../execution/util/cpi/UsrResourceProfile.java | 6 +-
.../execution/util/cpi/WorkflowCatalog.java | 2 +-
.../client/ProfileServiceClientFactory.java | 100 ----
.../sharing/service/ResourceSharingService.java | 6 +-
.../airavata/sharing/service/SharingHelper.java | 4 +-
.../airavata/storage/mapper/StorageMapper.java | 12 +-
.../storage/model/DataMovementInterfaceEntity.java | 2 +-
.../airavata/storage/model/DataProductEntity.java | 2 +-
.../storage/model/DataReplicaLocationEntity.java | 4 +-
.../storage/model/GridftpDataMovementEntity.java | 2 +-
.../storage/model/ScpDataMovementEntity.java | 2 +-
.../storage/model/StorageInterfaceEntity.java | 2 +-
.../storage/model/UnicoreDatamovementEntity.java | 2 +-
.../storage/repository/DataMovementRepository.java | 2 +-
.../storage/repository/DataProductRepository.java | 4 +-
.../repository/DataReplicaLocationRepository.java | 4 +-
.../storage/repository/StoragePrefRepository.java | 2 +-
.../repository/StorageResourceRepository.java | 7 +-
.../UserStoragePreferenceRepository.java | 2 +-
.../storage/service/DataProductService.java | 4 +-
.../apache/airavata/storage/task/ArchiveTask.java | 4 +-
.../airavata/storage/task/DataStagingTask.java | 6 +-
.../storage/task/InputDataStagingTask.java | 8 +-
.../storage/task/OutputDataStagingTask.java | 14 +-
.../airavata/storage/util/SSHJStorageAdaptor.java | 12 +-
.../storage/util/StorageResourceAdaptorImpl.java | 4 +-
230 files changed, 2410 insertions(+), 2655 deletions(-)
diff --git a/airavata-api/src/main/java/org/apache/airavata/common/config/ApplicationSettings.java b/airavata-api/src/main/java/org/apache/airavata/common/config/ApplicationSettings.java
index 2cf9d7d20c..8b23af23c3 100644
--- a/airavata-api/src/main/java/org/apache/airavata/common/config/ApplicationSettings.java
+++ b/airavata-api/src/main/java/org/apache/airavata/common/config/ApplicationSettings.java
@@ -50,12 +50,6 @@ public class ApplicationSettings {
private static final String SHUTDOWN_STATEGY_STRING = "shutdown.strategy";
- // ThriftClientPool Constants
- private static final String THRIFT_CLIENT_POOL_ABANDONED_REMOVAL_ENABLED =
- "thrift.client.pool.abandoned.removal.enabled";
- private static final String THRIFT_CLIENT_POOL_ABANDONED_REMOVAL_LOGGED =
- "thrift.client.pool.abandoned.removal.logged";
-
protected static ApplicationSettings INSTANCE;
public static enum ShutdownStrategy {
@@ -303,14 +297,6 @@ public class ApplicationSettings {
return getSetting(ServerSettings.IAM_SERVER_URL);
}
- public static boolean isThriftClientPoolAbandonedRemovalEnabled() {
- return Boolean.parseBoolean(getSetting(THRIFT_CLIENT_POOL_ABANDONED_REMOVAL_ENABLED, "false"));
- }
-
- public static boolean isThriftClientPoolAbandonedRemovalLogged() {
- return Boolean.parseBoolean(getSetting(THRIFT_CLIENT_POOL_ABANDONED_REMOVAL_LOGGED, "false"));
- }
-
public static void mergeSettingsCommandLineArgs(String[] args) {
getInstance().mergeSettingsCommandLineArgsImpl(args);
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/common/security/UserContext.java b/airavata-api/src/main/java/org/apache/airavata/common/security/UserContext.java
index 73694d56c2..225a91b2a4 100644
--- a/airavata-api/src/main/java/org/apache/airavata/common/security/UserContext.java
+++ b/airavata-api/src/main/java/org/apache/airavata/common/security/UserContext.java
@@ -21,7 +21,7 @@ package org.apache.airavata.common.security;
import java.util.Map;
import org.apache.airavata.common.config.Constants;
-import org.apache.airavata.model.security.AuthzToken;
+import org.apache.airavata.model.security.proto.AuthzToken;
import org.apache.airavata.security.profile.commons.user.entities.UserProfileEntity;
public class UserContext {
diff --git a/airavata-api/src/main/java/org/apache/airavata/common/util/AiravataClientFactory.java b/airavata-api/src/main/java/org/apache/airavata/common/util/AiravataClientFactory.java
deleted file mode 100644
index 3e45463333..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/common/util/AiravataClientFactory.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.common.util;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import org.apache.airavata.api.Airavata;
-import org.apache.airavata.common.config.Constants;
-import org.apache.airavata.common.config.ServerSettings;
-import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.airavata.model.security.AuthzToken;
-import org.apache.thrift.TException;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.transport.TSSLTransportFactory;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-public class AiravataClientFactory {
-
- public static Airavata.Client createAiravataClient(String serverHost, int serverPort, boolean secure)
- throws AiravataClientException {
- try {
- TTransport transport;
- if (!secure) {
- transport = new TSocket(serverHost, serverPort);
- transport.open();
- } else {
- // TLS enabled client
- var params = new TSSLTransportFactory.TSSLTransportParameters();
- params.setKeyStore(ServerSettings.getKeyStorePath(), ServerSettings.getKeyStorePassword());
- transport = TSSLTransportFactory.getClientSocket(serverHost, serverPort, 10000, params);
- }
-
- var protocol = new TBinaryProtocol(transport);
- // TMultiplexedProtocol mp = new TMultiplexedProtocol(protocol, "APIServer");
- return new Airavata.Client(protocol);
- } catch (TTransportException | ApplicationSettingsException e) {
- AiravataClientException exception = new AiravataClientException();
- exception.setParameter("Unable to connect to the server at " + serverHost + ":" + serverPort);
- throw exception;
- }
- }
-
- public static void main(String[] a) throws TException, ApplicationSettingsException {
- AuthzToken token = new AuthzToken();
- token.setAccessToken(
- "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJBUGFKRUpERFc4ZEdzMExnc3ozYUdydERsZ2U0eWlQblFibUNsYnpJX2NVIn0.eyJqdGkiOiI1NmMwZDZmYy0yMGVhLTQ1Y2UtODUwNC1kMTY0MTZkYTdkYzEiLCJleHAiOjE2NDc0NTQyNjcsIm5iZiI6MCwiaWF0IjoxNjQ3NDUyNDY3LCJpc3MiOiJodHRwczovL2lhbWRldi5zY2lnYXAub3JnL2F1dGgvcmVhbG1zL3NlYWdyaWQiLCJhdWQiOiJwZ2EiLCJzdWIiOiI3ZGZkYjI4MS1lNWIzLTQ4MjQtOTcxZC00YzQ2ZmNkMzIwYTEiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJwZ2EiLCJhdXRoX3RpbWUiOjAsInNlc3Npb25fc3RhdGUiOiI1NWVkODI5OS0xN2FiLTQ [...]
- Map<String, String> claimsMap = new HashMap<>();
- claimsMap.put(Constants.GATEWAY_ID, "seagrid");
- claimsMap.put(Constants.USER_NAME, "2021test1");
- token.setClaimsMap(claimsMap);
- Airavata.Client apiClient = createAiravataClient("apidev.scigap.org", 8930, ServerSettings.isTLSEnabled());
-
- List<String> outputNames = new ArrayList<>();
- outputNames.add("Gaussian-Application-Output");
- outputNames.add("Gaussian-Standar-Out");
- apiClient.fetchIntermediateOutputs(
- token, "Clone_of_Gaussian16_on_Mar_16,_2022_1:42_PM_1ad9e887-6ec4-4b1a-9ffb-e028ccb3c86c", outputNames);
- }
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/common/util/ThriftClientPool.java b/airavata-api/src/main/java/org/apache/airavata/common/util/ThriftClientPool.java
deleted file mode 100644
index b9a082a6d4..0000000000
--- a/airavata-api/src/main/java/org/apache/airavata/common/util/ThriftClientPool.java
+++ /dev/null
@@ -1,258 +0,0 @@
-/**
-*
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-package org.apache.airavata.common.util;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import org.apache.airavata.base.api.BaseAPI;
-import org.apache.airavata.common.config.ApplicationSettings;
-import org.apache.commons.pool2.BasePooledObjectFactory;
-import org.apache.commons.pool2.PooledObject;
-import org.apache.commons.pool2.impl.AbandonedConfig;
-import org.apache.commons.pool2.impl.DefaultPooledObject;
-import org.apache.commons.pool2.impl.GenericObjectPool;
-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
-import org.apache.thrift.protocol.TBinaryProtocol;
-import org.apache.thrift.protocol.TMultiplexedProtocol;
-import org.apache.thrift.protocol.TProtocol;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ThriftClientPool<T extends BaseAPI.Client> implements AutoCloseable {
-
- private static final Logger logger = LoggerFactory.getLogger(ThriftClientPool.class);
-
- private final GenericObjectPool<T> internalPool;
-
- /**
- * StringWriter that flushes to SLF4J logger.
- */
- private static class ErrorLoggingStringWriter extends StringWriter {
-
- @Override
- public void flush() {
- logger.error(this.toString());
- // Reset buffer
- this.getBuffer().setLength(0);
- }
- }
-
- public ThriftClientPool(
- ClientFactory<T> clientFactory, GenericObjectPoolConfig<T> poolConfig, String host, int port) {
- this(clientFactory, new BinaryOverSocketProtocolFactory(host, port), poolConfig);
- }
-
- public ThriftClientPool(
- ClientFactory<T> clientFactory,
- GenericObjectPoolConfig<T> poolConfig,
- String host,
- int port,
- String serviceName) {
- this(clientFactory, new BinaryOverSocketProtocolFactory(host, port, serviceName), poolConfig);
- }
-
- public ThriftClientPool(
- ClientFactory<T> clientFactory, ProtocolFactory protocolFactory, GenericObjectPoolConfig<T> poolConfig) {
-
- AbandonedConfig abandonedConfig = null;
- if (ApplicationSettings.isThriftClientPoolAbandonedRemovalEnabled()) {
- abandonedConfig = new AbandonedConfig();
- abandonedConfig.setRemoveAbandonedOnBorrow(true);
- abandonedConfig.setRemoveAbandonedOnMaintenance(true);
- if (ApplicationSettings.isThriftClientPoolAbandonedRemovalLogged()) {
- abandonedConfig.setLogAbandoned(true);
- abandonedConfig.setLogWriter(new PrintWriter(new ErrorLoggingStringWriter()));
- } else {
- abandonedConfig.setLogAbandoned(false);
- }
- }
- this.internalPool = new GenericObjectPool<T>(
- new ThriftClientFactory(clientFactory, protocolFactory), poolConfig, abandonedConfig);
- }
-
- public ThriftClientPool(
- ClientFactory<T> clientFactory,
- ProtocolFactory protocolFactory,
- GenericObjectPoolConfig<T> poolConfig,
- AbandonedConfig abandonedConfig) {
-
- if (abandonedConfig != null
- && abandonedConfig.getRemoveAbandonedOnMaintenance()
- && poolConfig.getTimeBetweenEvictionRunsMillis() <= 0) {
- logger.warn(
- "Abandoned removal is enabled but"
- + " removeAbandonedOnMaintenance won't run since"
- + " timeBetweenEvictionRunsMillis is not positive, current value: {}",
- poolConfig.getTimeBetweenEvictionRunsMillis());
- }
- this.internalPool = new GenericObjectPool<T>(
- new ThriftClientFactory(clientFactory, protocolFactory), poolConfig, abandonedConfig);
- }
-
- class ThriftClientFactory extends BasePooledObjectFactory<T> {
-
- private ClientFactory<T> clientFactory;
- private ProtocolFactory protocolFactory;
-
- public ThriftClientFactory(ClientFactory<T> clientFactory, ProtocolFactory protocolFactory) {
- this.clientFactory = clientFactory;
- this.protocolFactory = protocolFactory;
- }
-
- @Override
- public T create() throws Exception {
- try {
- TProtocol protocol = protocolFactory.make();
- return clientFactory.make(protocol);
- } catch (Exception e) {
- logger.warn(e.getMessage(), e);
- throw new ThriftClientException("Can not make a new object for pool", e);
- }
- }
-
- @Override
- public void destroyObject(PooledObject<T> pooledObject) throws Exception {
- T obj = pooledObject.getObject();
- if (obj.getOutputProtocol().getTransport().isOpen()) {
- obj.getOutputProtocol().getTransport().close();
- }
- if (obj.getInputProtocol().getTransport().isOpen()) {
- obj.getInputProtocol().getTransport().close();
- }
- }
-
- @Override
- public PooledObject<T> wrap(T obj) {
- return new DefaultPooledObject<T>(obj);
- }
- }
-
- public static interface ClientFactory<T> {
-
- T make(TProtocol tProtocol);
- }
-
- public static interface ProtocolFactory {
-
- TProtocol make();
- }
-
- public static class BinaryOverSocketProtocolFactory implements ProtocolFactory {
-
- private String host;
- private int port;
- private String serviceName;
-
- public BinaryOverSocketProtocolFactory(String host, int port) {
- this(host, port, null);
- }
-
- public BinaryOverSocketProtocolFactory(String host, int port, String serviceName) {
- this.host = host;
- this.port = port;
- this.serviceName = serviceName;
- }
-
- public TProtocol make() {
- TTransport transport;
- try {
- transport = new TSocket(host, port);
- transport.open();
- } catch (TTransportException e) {
- logger.warn(e.getMessage(), e);
- throw new ThriftClientException("Can not make protocol", e);
- }
- TProtocol protocol = new TBinaryProtocol(transport);
- if (serviceName != null) {
- return new TMultiplexedProtocol(protocol, serviceName);
- }
- return protocol;
- }
- }
-
- public static class ThriftClientException extends RuntimeException {
-
- // Fucking Eclipse
- private static final long serialVersionUID = -2275296727467192665L;
-
- public ThriftClientException(String message, Exception e) {
- super(message, e);
- }
- }
-
- public T getResource() {
- try {
- for (int i = 0; i < 10; i++) {
- // This tries to fetch a client from the pool and validate it before returning.
- final T client = internalPool.borrowObject();
- try {
- String apiVersion = client.getAPIVersion();
- logger.debug("Validated client and fetched api version " + apiVersion);
- return client;
- } catch (Exception e) {
- logger.warn("Failed to validate the client. Retrying " + i, e);
- returnBrokenResource(client);
- }
- }
- throw new Exception("Failed to fetch a client form the pool after validation");
- } catch (Exception e) {
- throw new ThriftClientException("Could not get a resource from the pool", e);
- }
- }
-
- public void returnResourceObject(T resource) {
- try {
- internalPool.returnObject(resource);
- } catch (Exception e) {
- throw new ThriftClientException("Could not return the resource to the pool", e);
- }
- }
-
- public void returnBrokenResource(T resource) {
- returnBrokenResourceObject(resource);
- }
-
- public void returnResource(T resource) {
- returnResourceObject(resource);
- }
-
- protected void returnBrokenResourceObject(T resource) {
- try {
- internalPool.invalidateObject(resource);
- } catch (Exception e) {
- throw new ThriftClientException("Could not return the resource to the pool", e);
- }
- }
-
- public void destroy() {
- close();
- }
-
- public void close() {
- try {
- internalPool.close();
- } catch (Exception e) {
- throw new ThriftClientException("Could not destroy the pool", e);
- }
- }
-}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java b/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
index 3953b137ac..f6d48a5fe7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/mapper/ComputeMapper.java
@@ -21,36 +21,36 @@ package org.apache.airavata.compute.mapper;
import java.sql.Timestamp;
import org.apache.airavata.compute.model.*;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.BatchQueue;
-import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
-import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.parser.Parser;
-import org.apache.airavata.model.appcatalog.parser.ParserInput;
-import org.apache.airavata.model.appcatalog.parser.ParserOutput;
-import org.apache.airavata.model.appcatalog.parser.ParsingTemplate;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.data.movement.GridFTPDataMovement;
-import org.apache.airavata.model.data.movement.LOCALDataMovement;
-import org.apache.airavata.model.data.movement.SCPDataMovement;
-import org.apache.airavata.model.data.movement.UnicoreDataMovement;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.BatchQueue;
+import org.apache.airavata.model.appcatalog.computeresource.proto.CloudJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.UnicoreJobSubmission;
+import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.parser.proto.Parser;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserInput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserOutput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.proto.GridFTPDataMovement;
+import org.apache.airavata.model.data.movement.proto.LOCALDataMovement;
+import org.apache.airavata.model.data.movement.proto.SCPDataMovement;
+import org.apache.airavata.model.data.movement.proto.UnicoreDataMovement;
import org.apache.airavata.storage.model.GridftpDataMovementEntity;
import org.apache.airavata.storage.model.LocalDataMovementEntity;
import org.apache.airavata.storage.model.ScpDataMovementEntity;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationDeploymentEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationDeploymentEntity.java
index 89435c0abe..f97a0bd74e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationDeploymentEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationDeploymentEntity.java
@@ -23,7 +23,7 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
/**
* The persistent class for the application_deployment database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationInputEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationInputEntity.java
index 9846723608..a0a36682d4 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationInputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationInputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The persistent class for the application_input database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationOutputEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationOutputEntity.java
index 242ed900dd..0610706c50 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationOutputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ApplicationOutputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The persistent class for the application_output database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/CloudJobSubmissionEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/CloudJobSubmissionEntity.java
index 3e0d1d6bc4..43790c113e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/CloudJobSubmissionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/CloudJobSubmissionEntity.java
@@ -21,8 +21,8 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.ProviderName;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ProviderName;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
/**
* The persistent class for the cloud_job_submission database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemEntity.java
index f0ea4028e7..575ca4e0fe 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.FileSystems;
+import org.apache.airavata.model.appcatalog.computeresource.proto.FileSystems;
/**
* The persistent class for the compute_resource_file_system database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemPK.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemPK.java
index c46d9b1160..4ceaa0d394 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemPK.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourceFileSystemPK.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.model;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.FileSystems;
+import org.apache.airavata.model.appcatalog.computeresource.proto.FileSystems;
/**
* The primary key class for the compute_resource_file_system database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourcePreferenceEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourcePreferenceEntity.java
index 07e1589ed4..55d4b58a91 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourcePreferenceEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ComputeResourcePreferenceEntity.java
@@ -23,8 +23,8 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
/**
* The persistent class for the compute_resource_preference database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/GlobusSubmissionEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/GlobusSubmissionEntity.java
index d69ab63f7f..2c352f7941 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/GlobusSubmissionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/GlobusSubmissionEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
/**
* The persistent class for the globus_submission database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/GroupComputeResourcePrefEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/GroupComputeResourcePrefEntity.java
index 9164de5671..94cbe8cd31 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/GroupComputeResourcePrefEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/GroupComputeResourcePrefEntity.java
@@ -34,8 +34,8 @@ import jakarta.persistence.JoinColumn;
import jakarta.persistence.ManyToOne;
import jakarta.persistence.Table;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandEntity.java
index 2e3c7da5f4..a0a24df5bd 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
/**
* The persistent class for the job_manager_command database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandPK.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandPK.java
index d66996dbd5..2e2c7350fc 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandPK.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobManagerCommandPK.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.model;
import java.io.Serializable;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
/**
* The primary key class for the job_manager_command database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobSubmissionInterfaceEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobSubmissionInterfaceEntity.java
index f98b03dca4..c93fd47bb9 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/JobSubmissionInterfaceEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/JobSubmissionInterfaceEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
/**
* The persistent class for the job_submission_interface database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/LocalSubmissionEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/LocalSubmissionEntity.java
index 9a8ecad805..91b7f0f5e4 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/LocalSubmissionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/LocalSubmissionEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
/**
* The persistent class for the local_submission database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandEntity.java
index 056c51a0c9..19a4d5fd10 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
/**
* The persistent class for the parallelism_command database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandPK.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandPK.java
index 408f06d64b..f5c4a6f846 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandPK.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ParallelismCommandPK.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.model;
import java.io.Serializable;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
/**
* The primary key class for the parallelism_command database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/ResourceJobManagerEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/ResourceJobManagerEntity.java
index ef5a085b95..9a89d0d944 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/ResourceJobManagerEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/ResourceJobManagerEntity.java
@@ -25,7 +25,7 @@ import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import org.apache.airavata.common.util.AiravataUtils;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManagerType;
/**
* The persistent class for the resource_job_manager database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/SshJobSubmissionEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/SshJobSubmissionEntity.java
index c89b305fb5..babf80aab6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/SshJobSubmissionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/SshJobSubmissionEntity.java
@@ -23,7 +23,7 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import org.apache.airavata.common.util.AiravataUtils;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
/**
* The persistent class for the ssh_job_submission database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/model/UnicoreSubmissionEntity.java b/airavata-api/src/main/java/org/apache/airavata/compute/model/UnicoreSubmissionEntity.java
index c518c1a3cb..00986c4672 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/model/UnicoreSubmissionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/model/UnicoreSubmissionEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
/**
* The persistent class for the unicore_submission database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationDeploymentRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationDeploymentRepository.java
index 90cca5f43e..d30d1950c6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationDeploymentRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationDeploymentRepository.java
@@ -28,9 +28,9 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
import org.apache.airavata.execution.util.cpi.ApplicationDeployment;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -66,13 +66,16 @@ public class ApplicationDeploymentRepository
throws AppCatalogException {
if (applicationDeploymentDescription.getAppDeploymentId().trim().isEmpty()
- || applicationDeploymentDescription.getAppDeploymentId().equals(airavata_commonsConstants.DEFAULT_ID)) {
+ || applicationDeploymentDescription.getAppDeploymentId().equals("DO_NOT_SET_AT_CLIENTS")) {
logger.debug(
"If Application Deployment ID is empty or DEFAULT, set it as the compute host name plus the App Module ID");
ComputeResourceDescription computeResourceDescription = new ComputeResourceRepository()
.getComputeResource(applicationDeploymentDescription.getComputeHostId());
- applicationDeploymentDescription.setAppDeploymentId(
- computeResourceDescription.getHostName() + "_" + applicationDeploymentDescription.getAppModuleId());
+ applicationDeploymentDescription = applicationDeploymentDescription.toBuilder()
+ .setAppDeploymentId(
+ computeResourceDescription.getHostName() + "_"
+ + applicationDeploymentDescription.getAppModuleId())
+ .build();
}
String applicationDeploymentId = applicationDeploymentDescription.getAppDeploymentId();
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInputRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInputRepository.java
index faa3b2d8ef..8c222d6dbe 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInputRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ApplicationInputEntity;
import org.apache.airavata.compute.model.ApplicationInputPK;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.application.io.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
public class ApplicationInputRepository
extends AbstractRepository<InputDataObjectType, ApplicationInputEntity, ApplicationInputPK> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInterfaceRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInterfaceRepository.java
index ae9e39777f..5a18e2988d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInterfaceRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationInterfaceRepository.java
@@ -31,11 +31,11 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
import org.apache.airavata.execution.util.cpi.ApplicationInterface;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,11 +73,13 @@ public class ApplicationInterfaceRepository
if (applicationInterfaceDescription.getApplicationInterfaceId().trim().equals("")
|| applicationInterfaceDescription
.getApplicationInterfaceId()
- .equals(airavata_commonsConstants.DEFAULT_ID)) {
+ .equals("DO_NOT_SET_AT_CLIENTS")) {
logger.debug(
"If Application Interface ID is empty or DEFAULT, set it as the Application Interface Name plus random UUID");
- applicationInterfaceDescription.setApplicationInterfaceId(
- AiravataUtils.getId(applicationInterfaceDescription.getApplicationName()));
+ applicationInterfaceDescription = applicationInterfaceDescription.toBuilder()
+ .setApplicationInterfaceId(
+ AiravataUtils.getId(applicationInterfaceDescription.getApplicationName()))
+ .build();
}
String applicationInterfaceId = applicationInterfaceDescription.getApplicationInterfaceId();
@@ -122,10 +124,12 @@ public class ApplicationInterfaceRepository
throws AppCatalogException {
if (applicationModule.getAppModuleId().trim().equals("")
- || applicationModule.getAppModuleId().equals(airavata_commonsConstants.DEFAULT_ID)) {
+ || applicationModule.getAppModuleId().equals("DO_NOT_SET_AT_CLIENTS")) {
logger.debug(
"If Application Module ID is empty or DEFAULT, set it as the Application Module Name plus random UUID");
- applicationModule.setAppModuleId(AiravataUtils.getId(applicationModule.getAppModuleName()));
+ applicationModule = applicationModule.toBuilder()
+ .setAppModuleId(AiravataUtils.getId(applicationModule.getAppModuleName()))
+ .build();
}
String applicationModuleId = applicationModule.getAppModuleId();
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationModuleRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationModuleRepository.java
index 3c027a8898..02ff949fdf 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationModuleRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationModuleRepository.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.repository;
import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ApplicationModuleEntity;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
public class ApplicationModuleRepository
extends AbstractRepository<ApplicationModule, ApplicationModuleEntity, String> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationOutputRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationOutputRepository.java
index 160e9d6295..f51feddf8e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationOutputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ApplicationOutputRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ApplicationOutputEntity;
import org.apache.airavata.compute.model.ApplicationOutputPK;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
public class ApplicationOutputRepository
extends AbstractRepository<OutputDataObjectType, ApplicationOutputEntity, ApplicationOutputPK> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueuePolicyRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueuePolicyRepository.java
index dfd80d726f..f133dd8e55 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueuePolicyRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueuePolicyRepository.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.repository;
import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.BatchQueueResourcePolicyEntity;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
/**
* Created by skariyat on 2/10/18.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
index 655bf45f4f..fe09228815 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/BatchQueueRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.BatchQueueEntity;
import org.apache.airavata.compute.model.BatchQueuePK;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.computeresource.BatchQueue;
+import org.apache.airavata.model.appcatalog.computeresource.proto.BatchQueue;
public class BatchQueueRepository extends AbstractRepository<BatchQueue, BatchQueueEntity, BatchQueuePK> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePolicyRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePolicyRepository.java
index ee6fbfe32d..f2e10e9928 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePolicyRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePolicyRepository.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.repository;
import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ComputeResourcePolicyEntity;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
/**
* Created by skariyat on 2/10/18.
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePrefRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePrefRepository.java
index f0b203dde7..a1cd1a5948 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePrefRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourcePrefRepository.java
@@ -26,7 +26,7 @@ import org.apache.airavata.compute.model.ComputeResourcePreferenceEntity;
import org.apache.airavata.compute.model.ComputeResourcePreferencePK;
import org.apache.airavata.compute.model.SSHAccountProvisionerConfiguration;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
public class ComputeResourcePrefRepository
extends AbstractRepository<
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourceRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourceRepository.java
index 83538e10c1..51f42a38a5 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourceRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ComputeResourceRepository.java
@@ -39,24 +39,24 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
import org.apache.airavata.execution.util.cpi.ComputeResource;
-import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.FileSystems;
-import org.apache.airavata.model.appcatalog.computeresource.GlobusJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
-import org.apache.airavata.model.data.movement.DMType;
-import org.apache.airavata.model.data.movement.DataMovementInterface;
-import org.apache.airavata.model.data.movement.GridFTPDataMovement;
-import org.apache.airavata.model.data.movement.LOCALDataMovement;
-import org.apache.airavata.model.data.movement.SCPDataMovement;
-import org.apache.airavata.model.data.movement.UnicoreDataMovement;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
+import org.apache.airavata.model.appcatalog.computeresource.proto.CloudJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.FileSystems;
+import org.apache.airavata.model.appcatalog.computeresource.proto.GlobusJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.UnicoreJobSubmission;
+
+import org.apache.airavata.model.data.movement.proto.DMType;
+import org.apache.airavata.model.data.movement.proto.DataMovementInterface;
+import org.apache.airavata.model.data.movement.proto.GridFTPDataMovement;
+import org.apache.airavata.model.data.movement.proto.LOCALDataMovement;
+import org.apache.airavata.model.data.movement.proto.SCPDataMovement;
+import org.apache.airavata.model.data.movement.proto.UnicoreDataMovement;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
import org.apache.airavata.storage.model.GridftpDataMovementEntity;
import org.apache.airavata.storage.model.GridftpEndpointEntity;
import org.apache.airavata.storage.model.LocalDataMovementEntity;
@@ -89,8 +89,10 @@ public class ComputeResourceRepository
@Override
public String addComputeResource(ComputeResourceDescription description) throws AppCatalogException {
if (description.getComputeResourceId().equals("")
- || description.getComputeResourceId().equals(airavata_commonsConstants.DEFAULT_ID)) {
- description.setComputeResourceId(AppCatalogUtils.getID(description.getHostName()));
+ || description.getComputeResourceId().equals("DO_NOT_SET_AT_CLIENTS")) {
+ description = description.toBuilder()
+ .setComputeResourceId(AppCatalogUtils.getID(description.getHostName()))
+ .build();
}
return saveComputeResourceDescriptorData(description);
}
@@ -142,7 +144,7 @@ public class ComputeResourceRepository
}
}
- protected Map<FileSystems, String> getFileSystems(String computeResourceId) {
+ protected Map<Integer, String> getFileSystems(String computeResourceId) {
Map<String, Object> queryParameters = new HashMap<>();
queryParameters.put(DBConstants.ComputeResource.COMPUTE_RESOURCE_ID, computeResourceId);
@@ -155,9 +157,9 @@ public class ComputeResourceRepository
});
List<ComputeResourceFileSystemEntity> computeResourceFileSystemEntityList = resultSet;
- Map<FileSystems, String> fileSystemsMap = new HashMap<FileSystems, String>();
+ Map<Integer, String> fileSystemsMap = new HashMap<>();
for (ComputeResourceFileSystemEntity fs : computeResourceFileSystemEntityList) {
- fileSystemsMap.put(fs.getFileSystem(), fs.getPath());
+ fileSystemsMap.put(fs.getFileSystem().getNumber(), fs.getPath());
}
return fileSystemsMap;
}
@@ -172,7 +174,9 @@ public class ComputeResourceRepository
public ComputeResourceDescription getComputeResource(String resourceId) throws AppCatalogException {
ComputeResourceDescription computeResourceDescription = get(resourceId);
if (computeResourceDescription != null) {
- computeResourceDescription.setFileSystems(getFileSystems(resourceId));
+ computeResourceDescription = computeResourceDescription.toBuilder()
+ .putAllFileSystems(getFileSystems(resourceId))
+ .build();
}
return computeResourceDescription;
}
@@ -250,21 +254,23 @@ public class ComputeResourceRepository
@Override
public String addSSHJobSubmission(SSHJobSubmission sshJobSubmission) throws AppCatalogException {
String submissionId = AppCatalogUtils.getID("SSH");
- sshJobSubmission.setJobSubmissionInterfaceId(submissionId);
+ sshJobSubmission = sshJobSubmission.toBuilder()
+ .setJobSubmissionInterfaceId(submissionId)
+ .build();
String resourceJobManagerId = addResourceJobManager(sshJobSubmission.getResourceJobManager());
SshJobSubmissionEntity sshJobSubmissionEntity =
ComputeMapper.INSTANCE.sshJobSubmissionToEntity(sshJobSubmission);
sshJobSubmissionEntity.getResourceJobManager().setResourceJobManagerId(resourceJobManagerId);
- if (sshJobSubmission.getResourceJobManager().getParallelismPrefix() != null) {
+ if (sshJobSubmission.getResourceJobManager().getParallelismPrefixMap() != null) {
(new ResourceJobManagerRepository())
.createParallesimPrefix(
- sshJobSubmission.getResourceJobManager().getParallelismPrefix(),
+ sshJobSubmission.getResourceJobManager().getParallelismPrefixMap(),
sshJobSubmissionEntity.getResourceJobManager());
}
- if (sshJobSubmission.getResourceJobManager().getJobManagerCommands() != null) {
+ if (sshJobSubmission.getResourceJobManager().getJobManagerCommandsMap() != null) {
(new ResourceJobManagerRepository())
.createJobManagerCommand(
- sshJobSubmission.getResourceJobManager().getJobManagerCommands(),
+ sshJobSubmission.getResourceJobManager().getJobManagerCommandsMap(),
sshJobSubmissionEntity.getResourceJobManager());
}
if (sshJobSubmission.getMonitorMode() != null) {
@@ -284,7 +290,9 @@ public class ComputeResourceRepository
@Override
public String addCloudJobSubmission(CloudJobSubmission cloudJobSubmission) throws AppCatalogException {
- cloudJobSubmission.setJobSubmissionInterfaceId(AppCatalogUtils.getID("Cloud"));
+ cloudJobSubmission = cloudJobSubmission.toBuilder()
+ .setJobSubmissionInterfaceId(AppCatalogUtils.getID("Cloud"))
+ .build();
CloudJobSubmissionEntity cloudJobSubmissionEntity =
ComputeMapper.INSTANCE.cloudJobSubmissionToEntity(cloudJobSubmission);
execute(entityManager -> entityManager.merge(cloudJobSubmissionEntity));
@@ -300,16 +308,18 @@ public class ComputeResourceRepository
@Override
public String addResourceJobManager(ResourceJobManager resourceJobManager) throws AppCatalogException {
ResourceJobManagerRepository resourceJobManagerRepository = new ResourceJobManagerRepository();
- resourceJobManager.setResourceJobManagerId(AppCatalogUtils.getID("RJM"));
+ resourceJobManager = resourceJobManager.toBuilder()
+ .setResourceJobManagerId(AppCatalogUtils.getID("RJM"))
+ .build();
resourceJobManagerRepository.create(resourceJobManager);
ResourceJobManagerEntity resourceJobManagerEntity =
ComputeMapper.INSTANCE.resourceJobManagerToEntity(resourceJobManager);
- Map<JobManagerCommand, String> jobManagerCommands = resourceJobManager.getJobManagerCommands();
+ Map<Integer, String> jobManagerCommands = resourceJobManager.getJobManagerCommandsMap();
if (jobManagerCommands != null && jobManagerCommands.size() != 0) {
resourceJobManagerRepository.createJobManagerCommand(jobManagerCommands, resourceJobManagerEntity);
}
- Map<ApplicationParallelismType, String> parallelismPrefix = resourceJobManager.getParallelismPrefix();
+ Map<Integer, String> parallelismPrefix = resourceJobManager.getParallelismPrefixMap();
if (parallelismPrefix != null && parallelismPrefix.size() != 0) {
resourceJobManagerRepository.createParallesimPrefix(parallelismPrefix, resourceJobManagerEntity);
}
@@ -320,16 +330,18 @@ public class ComputeResourceRepository
public void updateResourceJobManager(String resourceJobManagerId, ResourceJobManager updatedResourceJobManager)
throws AppCatalogException {
ResourceJobManagerRepository resourceJobManagerRepository = new ResourceJobManagerRepository();
- updatedResourceJobManager.setResourceJobManagerId(resourceJobManagerId);
+ updatedResourceJobManager = updatedResourceJobManager.toBuilder()
+ .setResourceJobManagerId(resourceJobManagerId)
+ .build();
ResourceJobManager resourceJobManager = resourceJobManagerRepository.create(updatedResourceJobManager);
ResourceJobManagerEntity resourceJobManagerEntity =
ComputeMapper.INSTANCE.resourceJobManagerToEntity(resourceJobManager);
- Map<JobManagerCommand, String> jobManagerCommands = updatedResourceJobManager.getJobManagerCommands();
+ Map<Integer, String> jobManagerCommands = updatedResourceJobManager.getJobManagerCommandsMap();
if (jobManagerCommands != null && jobManagerCommands.size() != 0) {
resourceJobManagerRepository.createJobManagerCommand(jobManagerCommands, resourceJobManagerEntity);
}
- Map<ApplicationParallelismType, String> parallelismPrefix = updatedResourceJobManager.getParallelismPrefix();
+ Map<Integer, String> parallelismPrefix = updatedResourceJobManager.getParallelismPrefixMap();
if (parallelismPrefix != null && parallelismPrefix.size() != 0) {
resourceJobManagerRepository.createParallesimPrefix(parallelismPrefix, resourceJobManagerEntity);
}
@@ -340,10 +352,25 @@ public class ComputeResourceRepository
ResourceJobManagerRepository resourceJobManagerRepository = new ResourceJobManagerRepository();
ResourceJobManager resourceJobManager = resourceJobManagerRepository.get(resourceJobManagerId);
if (resourceJobManager != null) {
- resourceJobManager.setJobManagerCommands(
- resourceJobManagerRepository.getJobManagerCommand(resourceJobManagerId));
- resourceJobManager.setParallelismPrefix(
- resourceJobManagerRepository.getParallelismPrefix(resourceJobManagerId));
+ // Convert enum-keyed maps to integer-keyed maps for proto
+ Map<JobManagerCommand, String> jmCommands =
+ resourceJobManagerRepository.getJobManagerCommand(resourceJobManagerId);
+ Map<Integer, String> jmCommandsInt = new HashMap<>();
+ for (Map.Entry<JobManagerCommand, String> entry : jmCommands.entrySet()) {
+ jmCommandsInt.put(entry.getKey().getNumber(), entry.getValue());
+ }
+
+ Map<ApplicationParallelismType, String> parPrefix =
+ resourceJobManagerRepository.getParallelismPrefix(resourceJobManagerId);
+ Map<Integer, String> parPrefixInt = new HashMap<>();
+ for (Map.Entry<ApplicationParallelismType, String> entry : parPrefix.entrySet()) {
+ parPrefixInt.put(entry.getKey().getNumber(), entry.getValue());
+ }
+
+ resourceJobManager = resourceJobManager.toBuilder()
+ .putAllJobManagerCommands(jmCommandsInt)
+ .putAllParallelismPrefix(parPrefixInt)
+ .build();
}
return resourceJobManager;
}
@@ -361,21 +388,23 @@ public class ComputeResourceRepository
@Override
public String addLocalJobSubmission(LOCALSubmission localSubmission) throws AppCatalogException {
- localSubmission.setJobSubmissionInterfaceId(AppCatalogUtils.getID("LOCAL"));
+ localSubmission = localSubmission.toBuilder()
+ .setJobSubmissionInterfaceId(AppCatalogUtils.getID("LOCAL"))
+ .build();
String resourceJobManagerId = addResourceJobManager(localSubmission.getResourceJobManager());
LocalSubmissionEntity localSubmissionEntity = ComputeMapper.INSTANCE.localSubmissionToEntity(localSubmission);
localSubmissionEntity.setResourceJobManagerId(resourceJobManagerId);
localSubmissionEntity.getResourceJobManager().setResourceJobManagerId(resourceJobManagerId);
- if (localSubmission.getResourceJobManager().getParallelismPrefix() != null) {
+ if (localSubmission.getResourceJobManager().getParallelismPrefixMap() != null) {
(new ResourceJobManagerRepository())
.createParallesimPrefix(
- localSubmission.getResourceJobManager().getParallelismPrefix(),
+ localSubmission.getResourceJobManager().getParallelismPrefixMap(),
localSubmissionEntity.getResourceJobManager());
}
- if (localSubmission.getResourceJobManager().getJobManagerCommands() != null) {
+ if (localSubmission.getResourceJobManager().getJobManagerCommandsMap() != null) {
(new ResourceJobManagerRepository())
.createJobManagerCommand(
- localSubmission.getResourceJobManager().getJobManagerCommands(),
+ localSubmission.getResourceJobManager().getJobManagerCommandsMap(),
localSubmissionEntity.getResourceJobManager());
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GatewayGroupsRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GatewayGroupsRepository.java
index d7e2a3c0db..6f2e6e9217 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GatewayGroupsRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GatewayGroupsRepository.java
@@ -22,7 +22,7 @@ package org.apache.airavata.compute.repository;
import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.GatewayGroupsEntity;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
+import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
public class GatewayGroupsRepository extends AbstractRepository<GatewayGroups, GatewayGroupsEntity, String> {
public GatewayGroupsRepository() {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
index c463f720eb..a40530ff6f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GroupResourceProfileRepository.java
@@ -36,14 +36,17 @@ import org.apache.airavata.compute.model.SlurmGroupComputeResourcePrefEntity;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.AwsComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.SlurmComputeResourcePreference;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.AwsComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourceReservation;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.EnvironmentSpecificPreferences;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupSSHAccountProvisionerConfig;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.SlurmComputeResourcePreference;
+
/**
* Created by skariyat on 2/8/18.
@@ -68,66 +71,106 @@ public class GroupResourceProfileRepository
public String addGroupResourceProfile(GroupResourceProfile groupResourceProfile) {
final String groupResourceProfileId = UUID.randomUUID().toString();
- groupResourceProfile.setGroupResourceProfileId(groupResourceProfileId);
- groupResourceProfile.setCreationTime(System.currentTimeMillis());
- updateChildren(groupResourceProfile, groupResourceProfileId);
+ groupResourceProfile = groupResourceProfile.toBuilder()
+ .setGroupResourceProfileId(groupResourceProfileId)
+ .setCreationTime(System.currentTimeMillis())
+ .build();
+ groupResourceProfile = updateChildren(groupResourceProfile, groupResourceProfileId);
return updateGroupResourceProfile(groupResourceProfile);
}
- private void updateChildren(GroupResourceProfile groupResourceProfile, String groupResourceProfileId) {
- if (groupResourceProfile.getComputePreferences() != null) {
- for (GroupComputeResourcePreference gcrPref : groupResourceProfile.getComputePreferences()) {
- gcrPref.setGroupResourceProfileId(groupResourceProfileId);
+ private GroupResourceProfile updateChildren(GroupResourceProfile groupResourceProfile, String groupResourceProfileId) {
+ GroupResourceProfile.Builder profileBuilder = groupResourceProfile.toBuilder();
+
+ if (groupResourceProfile.getComputePreferencesList() != null) {
+ List<GroupComputeResourcePreference> updatedPrefs = new ArrayList<>();
+ for (GroupComputeResourcePreference gcrPref : groupResourceProfile.getComputePreferencesList()) {
+ GroupComputeResourcePreference.Builder prefBuilder = gcrPref.toBuilder()
+ .setGroupResourceProfileId(groupResourceProfileId);
if (gcrPref.getResourceType() == ResourceType.SLURM
- && gcrPref.isSetSpecificPreferences()
- && gcrPref.getSpecificPreferences().isSetSlurm()) {
+ && gcrPref.hasSpecificPreferences()
+ && gcrPref.getSpecificPreferences().hasSlurm()) {
SlurmComputeResourcePreference slurm =
gcrPref.getSpecificPreferences().getSlurm();
+ SlurmComputeResourcePreference.Builder slurmBuilder = slurm.toBuilder();
// update SSH provisioner configs
- if (slurm.getGroupSSHAccountProvisionerConfigs() != null) {
- slurm.getGroupSSHAccountProvisionerConfigs()
- .forEach(gssh -> gssh.setGroupResourceProfileId(groupResourceProfileId));
+ if (slurm.getGroupSSHAccountProvisionerConfigsList() != null) {
+ List<GroupSSHAccountProvisionerConfig> updatedConfigs = new ArrayList<>();
+ for (GroupSSHAccountProvisionerConfig gssh : slurm.getGroupSSHAccountProvisionerConfigsList()) {
+ updatedConfigs.add(gssh.toBuilder()
+ .setGroupResourceProfileId(groupResourceProfileId)
+ .build());
+ }
+ slurmBuilder.clearGroupSSHAccountProvisionerConfigs()
+ .addAllGroupSSHAccountProvisionerConfigs(updatedConfigs);
}
// update reservations
- if (slurm.getReservations() != null) {
- slurm.getReservations().forEach(res -> {
+ if (slurm.getReservationsList() != null) {
+ List<ComputeResourceReservation> updatedRes = new ArrayList<>();
+ for (ComputeResourceReservation res : slurm.getReservationsList()) {
if (res.getReservationId().trim().isEmpty()
- || res.getReservationId().equals(airavata_commonsConstants.DEFAULT_ID)) {
- res.setReservationId(AiravataUtils.getId(res.getReservationName()));
+ || res.getReservationId().equals("DO_NOT_SET_AT_CLIENTS")) {
+ updatedRes.add(res.toBuilder()
+ .setReservationId(AiravataUtils.getId(res.getReservationName()))
+ .build());
+ } else {
+ updatedRes.add(res);
}
- });
+ }
+ slurmBuilder.clearReservations().addAllReservations(updatedRes);
}
+
+ prefBuilder.setSpecificPreferences(
+ gcrPref.getSpecificPreferences().toBuilder()
+ .setSlurm(slurmBuilder.build())
+ .build());
}
+ updatedPrefs.add(prefBuilder.build());
}
+ profileBuilder.clearComputePreferences().addAllComputePreferences(updatedPrefs);
}
- if (groupResourceProfile.getBatchQueueResourcePolicies() != null) {
- groupResourceProfile.getBatchQueueResourcePolicies().forEach(bq -> {
+
+ if (groupResourceProfile.getBatchQueueResourcePoliciesList() != null) {
+ List<BatchQueueResourcePolicy> updatedBqs = new ArrayList<>();
+ for (BatchQueueResourcePolicy bq : groupResourceProfile.getBatchQueueResourcePoliciesList()) {
+ BatchQueueResourcePolicy.Builder bqBuilder = bq.toBuilder();
if (bq.getResourcePolicyId().trim().isEmpty()
- || bq.getResourcePolicyId().equals(airavata_commonsConstants.DEFAULT_ID)) {
- bq.setResourcePolicyId(UUID.randomUUID().toString());
+ || bq.getResourcePolicyId().equals("DO_NOT_SET_AT_CLIENTS")) {
+ bqBuilder.setResourcePolicyId(UUID.randomUUID().toString());
}
- bq.setGroupResourceProfileId(groupResourceProfileId);
- });
+ bqBuilder.setGroupResourceProfileId(groupResourceProfileId);
+ updatedBqs.add(bqBuilder.build());
+ }
+ profileBuilder.clearBatchQueueResourcePolicies().addAllBatchQueueResourcePolicies(updatedBqs);
}
- if (groupResourceProfile.getComputeResourcePolicies() != null) {
- groupResourceProfile.getComputeResourcePolicies().forEach(cr -> {
+
+ if (groupResourceProfile.getComputeResourcePoliciesList() != null) {
+ List<ComputeResourcePolicy> updatedCrs = new ArrayList<>();
+ for (ComputeResourcePolicy cr : groupResourceProfile.getComputeResourcePoliciesList()) {
+ ComputeResourcePolicy.Builder crBuilder = cr.toBuilder();
if (cr.getResourcePolicyId().trim().isEmpty()
- || cr.getResourcePolicyId().equals(airavata_commonsConstants.DEFAULT_ID)) {
- cr.setResourcePolicyId(UUID.randomUUID().toString());
+ || cr.getResourcePolicyId().equals("DO_NOT_SET_AT_CLIENTS")) {
+ crBuilder.setResourcePolicyId(UUID.randomUUID().toString());
}
- cr.setGroupResourceProfileId(groupResourceProfileId);
- });
+ crBuilder.setGroupResourceProfileId(groupResourceProfileId);
+ updatedCrs.add(crBuilder.build());
+ }
+ profileBuilder.clearComputeResourcePolicies().addAllComputeResourcePolicies(updatedCrs);
}
+
+ return profileBuilder.build();
}
public String updateGroupResourceProfile(GroupResourceProfile updatedGroupResourceProfile) {
- updatedGroupResourceProfile.setUpdatedTime(System.currentTimeMillis());
- updateChildren(updatedGroupResourceProfile, updatedGroupResourceProfile.getGroupResourceProfileId());
+ updatedGroupResourceProfile = updatedGroupResourceProfile.toBuilder()
+ .setUpdatedTime(System.currentTimeMillis())
+ .build();
+ updatedGroupResourceProfile = updateChildren(updatedGroupResourceProfile, updatedGroupResourceProfile.getGroupResourceProfileId());
GroupResourceProfileEntity groupResourceProfileEntity = mapToEntity(updatedGroupResourceProfile);
patchComputePrefEntities(groupResourceProfileEntity, updatedGroupResourceProfile);
updateChildrenEntities(groupResourceProfileEntity);
@@ -154,21 +197,21 @@ public class GroupResourceProfileRepository
}
private void patchComputePrefEntities(GroupResourceProfileEntity destEntity, GroupResourceProfile sourceModel) {
- if (destEntity.getComputePreferences() == null || sourceModel.getComputePreferences() == null) {
+ if (destEntity.getComputePreferences() == null || sourceModel.getComputePreferencesList() == null) {
return;
}
Map<String, GroupComputeResourcePreference> sourcePrefs = new HashMap<>();
- for (GroupComputeResourcePreference pref : sourceModel.getComputePreferences()) {
+ for (GroupComputeResourcePreference pref : sourceModel.getComputePreferencesList()) {
sourcePrefs.put(pref.getComputeResourceId(), pref);
}
for (GroupComputeResourcePrefEntity prefEntity : destEntity.getComputePreferences()) {
GroupComputeResourcePreference sourcePref = sourcePrefs.get(prefEntity.getComputeResourceId());
- if (sourcePref == null || !sourcePref.isSetSpecificPreferences()) {
+ if (sourcePref == null || !sourcePref.hasSpecificPreferences()) {
continue;
}
if (prefEntity instanceof SlurmGroupComputeResourcePrefEntity slurmEntity) {
- if (sourcePref.getSpecificPreferences().isSetSlurm()) {
+ if (sourcePref.getSpecificPreferences().hasSlurm()) {
SlurmComputeResourcePreference slurm =
sourcePref.getSpecificPreferences().getSlurm();
slurmEntity.setAllocationProjectNumber(slurm.getAllocationProjectNumber());
@@ -179,7 +222,7 @@ public class GroupResourceProfileRepository
slurmEntity.setSshAccountProvisionerAdditionalInfo(slurm.getSshAccountProvisionerAdditionalInfo());
}
} else if (prefEntity instanceof AWSGroupComputeResourcePrefEntity awsEntity) {
- if (sourcePref.getSpecificPreferences().isSetAws()) {
+ if (sourcePref.getSpecificPreferences().hasAws()) {
AwsComputeResourcePreference aws =
sourcePref.getSpecificPreferences().getAws();
awsEntity.setRegion(aws.getRegion());
@@ -195,13 +238,16 @@ public class GroupResourceProfileRepository
GrpComputePrefRepository prefRepo = new GrpComputePrefRepository();
List<GroupComputeResourcePreference> decoratedPrefs = new ArrayList<>();
- for (GroupComputeResourcePreference raw : groupResourceProfile.getComputePreferences()) {
+ for (GroupComputeResourcePreference raw : groupResourceProfile.getComputePreferencesList()) {
GroupComputeResourcePrefPK pk = new GroupComputeResourcePrefPK();
pk.setComputeResourceId(raw.getComputeResourceId());
pk.setGroupResourceProfileId(raw.getGroupResourceProfileId());
decoratedPrefs.add(prefRepo.get(pk));
}
- groupResourceProfile.setComputePreferences(decoratedPrefs);
+ groupResourceProfile = groupResourceProfile.toBuilder()
+ .clearComputePreferences()
+ .addAllComputePreferences(decoratedPrefs)
+ .build();
return groupResourceProfile;
}
@@ -228,10 +274,11 @@ public class GroupResourceProfileRepository
accessibleGroupResProfileIds));
GrpComputePrefRepository prefRepo = new GrpComputePrefRepository();
+ List<GroupResourceProfile> decoratedProfiles = new ArrayList<>();
for (GroupResourceProfile profile : profiles) {
List<GroupComputeResourcePreference> decoratedPrefs = new ArrayList<>();
- for (GroupComputeResourcePreference rawPref : profile.getComputePreferences()) {
+ for (GroupComputeResourcePreference rawPref : profile.getComputePreferencesList()) {
GroupComputeResourcePrefPK pk = new GroupComputeResourcePrefPK();
pk.setComputeResourceId(rawPref.getComputeResourceId());
pk.setGroupResourceProfileId(rawPref.getGroupResourceProfileId());
@@ -240,9 +287,12 @@ public class GroupResourceProfileRepository
decoratedPrefs.add(fullPref);
}
- profile.setComputePreferences(decoratedPrefs);
+ decoratedProfiles.add(profile.toBuilder()
+ .clearComputePreferences()
+ .addAllComputePreferences(decoratedPrefs)
+ .build());
}
- return profiles;
+ return decoratedProfiles;
} else {
return Collections.emptyList();
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GrpComputePrefRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GrpComputePrefRepository.java
index d8d711d566..f057ca3e62 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GrpComputePrefRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GrpComputePrefRepository.java
@@ -25,11 +25,11 @@ import org.apache.airavata.compute.model.GroupComputeResourcePrefEntity;
import org.apache.airavata.compute.model.GroupComputeResourcePrefPK;
import org.apache.airavata.compute.model.SlurmGroupComputeResourcePrefEntity;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.AwsComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.EnvironmentSpecificPreferences;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.SlurmComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.AwsComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.EnvironmentSpecificPreferences;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.SlurmComputeResourcePreference;
/**
* Created by skariyat on 2/10/18.
@@ -66,32 +66,36 @@ public class GrpComputePrefRepository
}
if (ent instanceof SlurmGroupComputeResourcePrefEntity sl) {
- pref.setResourceType(ResourceType.SLURM);
-
- SlurmComputeResourcePreference scrp = new SlurmComputeResourcePreference();
- scrp.setAllocationProjectNumber(sl.getAllocationProjectNumber());
- scrp.setPreferredBatchQueue(sl.getPreferredBatchQueue());
- scrp.setQualityOfService(sl.getQualityOfService());
- scrp.setUsageReportingGatewayId(sl.getUsageReportingGatewayId());
- scrp.setSshAccountProvisioner(sl.getSshAccountProvisioner());
- scrp.setSshAccountProvisionerAdditionalInfo(sl.getSshAccountProvisionerAdditionalInfo());
+ SlurmComputeResourcePreference.Builder scrpBuilder = SlurmComputeResourcePreference.newBuilder();
+ if (sl.getAllocationProjectNumber() != null) scrpBuilder.setAllocationProjectNumber(sl.getAllocationProjectNumber());
+ if (sl.getPreferredBatchQueue() != null) scrpBuilder.setPreferredBatchQueue(sl.getPreferredBatchQueue());
+ if (sl.getQualityOfService() != null) scrpBuilder.setQualityOfService(sl.getQualityOfService());
+ if (sl.getUsageReportingGatewayId() != null) scrpBuilder.setUsageReportingGatewayId(sl.getUsageReportingGatewayId());
+ if (sl.getSshAccountProvisioner() != null) scrpBuilder.setSshAccountProvisioner(sl.getSshAccountProvisioner());
+ if (sl.getSshAccountProvisionerAdditionalInfo() != null) scrpBuilder.setSshAccountProvisionerAdditionalInfo(sl.getSshAccountProvisionerAdditionalInfo());
// TODO - check whether the groupSSHAccountProvisionerConfigs and reservations are needed
- EnvironmentSpecificPreferences esp = new EnvironmentSpecificPreferences();
- esp.setSlurm(scrp);
- pref.setSpecificPreferences(esp);
+ EnvironmentSpecificPreferences esp = EnvironmentSpecificPreferences.newBuilder()
+ .setSlurm(scrpBuilder.build())
+ .build();
+ pref = pref.toBuilder()
+ .setResourceType(ResourceType.SLURM)
+ .setSpecificPreferences(esp)
+ .build();
} else if (ent instanceof AWSGroupComputeResourcePrefEntity aws) {
- pref.setResourceType(ResourceType.AWS);
-
- AwsComputeResourcePreference awsPref = new AwsComputeResourcePreference();
- awsPref.setRegion(aws.getRegion());
- awsPref.setPreferredAmiId(aws.getPreferredAmiId());
- awsPref.setPreferredInstanceType(aws.getPreferredInstanceType());
+ AwsComputeResourcePreference.Builder awsPrefBuilder = AwsComputeResourcePreference.newBuilder();
+ if (aws.getRegion() != null) awsPrefBuilder.setRegion(aws.getRegion());
+ if (aws.getPreferredAmiId() != null) awsPrefBuilder.setPreferredAmiId(aws.getPreferredAmiId());
+ if (aws.getPreferredInstanceType() != null) awsPrefBuilder.setPreferredInstanceType(aws.getPreferredInstanceType());
- EnvironmentSpecificPreferences esp = new EnvironmentSpecificPreferences();
- esp.setAws(awsPref);
- pref.setSpecificPreferences(esp);
+ EnvironmentSpecificPreferences esp = EnvironmentSpecificPreferences.newBuilder()
+ .setAws(awsPrefBuilder.build())
+ .build();
+ pref = pref.toBuilder()
+ .setResourceType(ResourceType.AWS)
+ .setSpecificPreferences(esp)
+ .build();
return pref;
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GwyResourceProfileRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GwyResourceProfileRepository.java
index 5f99d1c57f..d3c2d3bb02 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/GwyResourceProfileRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/GwyResourceProfileRepository.java
@@ -31,9 +31,9 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
import org.apache.airavata.execution.util.cpi.GwyResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
import org.apache.airavata.storage.model.StoragePreferencePK;
import org.apache.airavata.storage.repository.StoragePrefRepository;
import org.slf4j.Logger;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/JobSubmissionInterfaceRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/JobSubmissionInterfaceRepository.java
index c48781587c..cab9054ca3 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/JobSubmissionInterfaceRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/JobSubmissionInterfaceRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.JobSubmissionInterfaceEntity;
import org.apache.airavata.compute.model.JobSubmissionInterfacePK;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
public class JobSubmissionInterfaceRepository
extends AbstractRepository<JobSubmissionInterface, JobSubmissionInterfaceEntity, JobSubmissionInterfacePK> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserInputRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserInputRepository.java
index 54592446e8..b08d5ab44e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserInputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserInputRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ParserInputEntity;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
-import org.apache.airavata.model.appcatalog.parser.ParserInput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserInput;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserOutputRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserOutputRepository.java
index 808a3b027c..59d52897aa 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserOutputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserOutputRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.ParserOutputEntity;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
-import org.apache.airavata.model.appcatalog.parser.ParserOutput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserOutput;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserRepository.java
index 5dd9f92238..b3eec170fc 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParserRepository.java
@@ -28,7 +28,7 @@ import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
-import org.apache.airavata.model.appcatalog.parser.Parser;
+import org.apache.airavata.model.appcatalog.parser.proto.Parser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParsingTemplateRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParsingTemplateRepository.java
index af3a99a5cc..ac1014359f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParsingTemplateRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ParsingTemplateRepository.java
@@ -27,7 +27,7 @@ import org.apache.airavata.compute.model.ParsingTemplateEntity;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
-import org.apache.airavata.model.appcatalog.parser.ParsingTemplate;
+import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
public class ParsingTemplateRepository extends AbstractRepository<ParsingTemplate, ParsingTemplateEntity, String> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ResourceJobManagerRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ResourceJobManagerRepository.java
index 475f5d8a8c..bca242b250 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/ResourceJobManagerRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/ResourceJobManagerRepository.java
@@ -28,9 +28,9 @@ import org.apache.airavata.compute.model.*;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManager;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
public class ResourceJobManagerRepository
extends AbstractRepository<ResourceJobManager, ResourceJobManagerEntity, String> {
@@ -50,12 +50,13 @@ public class ResourceJobManagerRepository
}
public void createJobManagerCommand(
- Map<JobManagerCommand, String> jobManagerCommands, ResourceJobManagerEntity resourceJobManagerEntity) {
- for (JobManagerCommand commandType : jobManagerCommands.keySet()) {
- if (jobManagerCommands.get(commandType) != null
- && !jobManagerCommands.get(commandType).isEmpty()) {
+ Map<Integer, String> jobManagerCommands, ResourceJobManagerEntity resourceJobManagerEntity) {
+ for (Integer commandTypeValue : jobManagerCommands.keySet()) {
+ JobManagerCommand commandType = JobManagerCommand.forNumber(commandTypeValue);
+ if (commandType != null && jobManagerCommands.get(commandTypeValue) != null
+ && !jobManagerCommands.get(commandTypeValue).isEmpty()) {
JobManagerCommandEntity jobManagerCommandEntity = new JobManagerCommandEntity();
- jobManagerCommandEntity.setCommand(jobManagerCommands.get(commandType));
+ jobManagerCommandEntity.setCommand(jobManagerCommands.get(commandTypeValue));
jobManagerCommandEntity.setResourceJobManager(resourceJobManagerEntity);
jobManagerCommandEntity.setResourceJobManagerId(resourceJobManagerEntity.getResourceJobManagerId());
jobManagerCommandEntity.setCommandType(commandType);
@@ -65,13 +66,14 @@ public class ResourceJobManagerRepository
}
public void createParallesimPrefix(
- Map<ApplicationParallelismType, String> parallelismPrefix,
+ Map<Integer, String> parallelismPrefix,
ResourceJobManagerEntity resourceJobManagerEntity) {
- for (ApplicationParallelismType commandType : parallelismPrefix.keySet()) {
- if (parallelismPrefix.get(commandType) != null
- && !parallelismPrefix.get(commandType).isEmpty()) {
+ for (Integer commandTypeValue : parallelismPrefix.keySet()) {
+ ApplicationParallelismType commandType = ApplicationParallelismType.forNumber(commandTypeValue);
+ if (commandType != null && parallelismPrefix.get(commandTypeValue) != null
+ && !parallelismPrefix.get(commandTypeValue).isEmpty()) {
ParallelismCommandEntity parallelismCommandEntity = new ParallelismCommandEntity();
- parallelismCommandEntity.setCommand(parallelismPrefix.get(commandType));
+ parallelismCommandEntity.setCommand(parallelismPrefix.get(commandTypeValue));
parallelismCommandEntity.setResourceJobManager(resourceJobManagerEntity);
parallelismCommandEntity.setCommandType(commandType);
parallelismCommandEntity.setResourceJobManagerId(resourceJobManagerEntity.getResourceJobManagerId());
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserComputeResourcePreferenceRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserComputeResourcePreferenceRepository.java
index 35db26245c..5fd456634e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserComputeResourcePreferenceRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserComputeResourcePreferenceRepository.java
@@ -23,7 +23,7 @@ import org.apache.airavata.compute.mapper.ComputeMapper;
import org.apache.airavata.compute.model.UserComputeResourcePreferenceEntity;
import org.apache.airavata.compute.model.UserComputeResourcePreferencePK;
import org.apache.airavata.execution.util.AbstractRepository;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
public class UserComputeResourcePreferenceRepository
extends AbstractRepository<
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserResourceProfileRepository.java b/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserResourceProfileRepository.java
index e8596fbe1e..c4144830fd 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserResourceProfileRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/repository/UserResourceProfileRepository.java
@@ -30,9 +30,9 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
import org.apache.airavata.execution.util.cpi.UsrResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserStoragePreference;
import org.apache.airavata.storage.model.UserStoragePreferencePK;
import org.apache.airavata.storage.repository.UserStoragePreferenceRepository;
import org.slf4j.Logger;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
index ffc3407b26..819c7504f7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/ApplicationCatalogService.java
@@ -27,16 +27,16 @@ import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceAuthorizationException;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.airavata_commonsConstants;
-import org.apache.airavata.model.group.ResourcePermissionType;
-import org.apache.airavata.model.group.ResourceType;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+
+import org.apache.airavata.model.group.proto.ResourcePermissionType;
+import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
import org.apache.airavata.sharing.registry.models.Entity;
import org.apache.airavata.sharing.registry.models.EntitySearchField;
@@ -286,7 +286,7 @@ public class ApplicationCatalogService {
}
GroupResourceProfile groupResourceProfile = registryHandler.getGroupResourceProfile(groupResourceProfileId);
List<String> accessibleComputeResourceIds = new ArrayList<>();
- for (GroupComputeResourcePreference pref : groupResourceProfile.getComputePreferences()) {
+ for (GroupComputeResourcePreference pref : groupResourceProfile.getComputePreferencesList()) {
accessibleComputeResourceIds.add(pref.getComputeResourceId());
}
@@ -342,8 +342,10 @@ public class ApplicationCatalogService {
if (existingInterface == null) {
throw new ServiceException("Provided application interface does not exist: " + existingAppInterfaceId);
}
- existingInterface.setApplicationName(newApplicationName);
- existingInterface.setApplicationInterfaceId(airavata_commonsConstants.DEFAULT_ID);
+ existingInterface = existingInterface.toBuilder()
+ .setApplicationName(newApplicationName)
+ .setApplicationInterfaceId("DO_NOT_SET_AT_CLIENTS")
+ .build();
String interfaceId = registryHandler.registerApplicationInterface(gatewayId, existingInterface);
logger.debug("Cloned application interface {} for gateway {}", existingAppInterfaceId, gatewayId);
return interfaceId;
@@ -444,7 +446,7 @@ public class ApplicationCatalogService {
registryHandler.getGroupResourceList(gatewayId, accessibleGroupResProfileIds);
for (GroupResourceProfile groupResourceProfile : groupResourceProfiles) {
List<GroupComputeResourcePreference> groupComputeResourcePreferenceList =
- groupResourceProfile.getComputePreferences();
+ groupResourceProfile.getComputePreferencesList();
for (GroupComputeResourcePreference pref : groupComputeResourcePreferenceList) {
accessibleComputeResourceIds.add(pref.getComputeResourceId());
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/GatewayResourceProfileService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/GatewayResourceProfileService.java
index cc74efc425..742a640978 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/GatewayResourceProfileService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/GatewayResourceProfileService.java
@@ -27,12 +27,12 @@ import org.apache.airavata.credential.service.provisioning.SSHAccountProvisioner
import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.accountprovisioning.SSHAccountProvisioner;
-import org.apache.airavata.model.appcatalog.accountprovisioning.SSHAccountProvisionerConfigParam;
-import org.apache.airavata.model.appcatalog.accountprovisioning.SSHAccountProvisionerConfigParamType;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
+import org.apache.airavata.model.appcatalog.accountprovisioning.proto.SSHAccountProvisioner;
+import org.apache.airavata.model.appcatalog.accountprovisioning.proto.SSHAccountProvisionerConfigParam;
+import org.apache.airavata.model.appcatalog.accountprovisioning.proto.SSHAccountProvisionerConfigParamType;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -201,27 +201,29 @@ public class GatewayResourceProfileService {
List<SSHAccountProvisionerProvider> providers =
SSHAccountProvisionerFactory.getSSHAccountProvisionerProviders();
for (SSHAccountProvisionerProvider provider : providers) {
- SSHAccountProvisioner provisioner = new SSHAccountProvisioner();
- provisioner.setCanCreateAccount(provider.canCreateAccount());
- provisioner.setCanInstallSSHKey(provider.canInstallSSHKey());
- provisioner.setName(provider.getName());
List<SSHAccountProvisionerConfigParam> configParams = new ArrayList<>();
for (ConfigParam configParam : provider.getConfigParams()) {
- SSHAccountProvisionerConfigParam param = new SSHAccountProvisionerConfigParam();
- param.setName(configParam.getName());
- param.setDescription(configParam.getDescription());
- param.setIsOptional(configParam.isOptional());
+ SSHAccountProvisionerConfigParam.Builder paramBuilder =
+ SSHAccountProvisionerConfigParam.newBuilder()
+ .setName(configParam.getName())
+ .setDescription(configParam.getDescription())
+ .setIsOptional(configParam.isOptional());
switch (configParam.getType()) {
case STRING:
- param.setType(SSHAccountProvisionerConfigParamType.STRING);
+ paramBuilder.setType(SSHAccountProvisionerConfigParamType.STRING);
break;
case CRED_STORE_PASSWORD_TOKEN:
- param.setType(SSHAccountProvisionerConfigParamType.CRED_STORE_PASSWORD_TOKEN);
+ paramBuilder.setType(SSHAccountProvisionerConfigParamType.CRED_STORE_PASSWORD_TOKEN);
break;
}
- configParams.add(param);
+ configParams.add(paramBuilder.build());
}
- provisioner.setConfigParams(configParams);
+ SSHAccountProvisioner provisioner = SSHAccountProvisioner.newBuilder()
+ .setCanCreateAccount(provider.canCreateAccount())
+ .setCanInstallSSHKey(provider.canInstallSSHKey())
+ .setName(provider.getName())
+ .addAllConfigParams(configParams)
+ .build();
sshAccountProvisioners.add(provisioner);
}
return sshAccountProvisioners;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
index 1ac3a72647..4bfde4e4b7 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/GroupResourceProfileService.java
@@ -27,13 +27,13 @@ import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceAuthorizationException;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.group.ResourcePermissionType;
-import org.apache.airavata.model.group.ResourceType;
+import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.group.proto.ResourcePermissionType;
+import org.apache.airavata.model.group.proto.ResourceType;
import org.apache.airavata.sharing.handler.SharingRegistryServerHandler;
import org.apache.airavata.sharing.registry.models.Entity;
import org.apache.airavata.sharing.registry.models.EntitySearchField;
@@ -535,8 +535,8 @@ public class GroupResourceProfileService {
String gatewayId = ctx.getGatewayId();
String userId = ctx.getUserId();
Set<String> tokenIds = new HashSet<>();
- if (groupResourceProfile.getComputePreferences() != null) {
- for (GroupComputeResourcePreference pref : groupResourceProfile.getComputePreferences()) {
+ if (groupResourceProfile.getComputePreferencesList() != null) {
+ for (GroupComputeResourcePreference pref : groupResourceProfile.getComputePreferencesList()) {
if (pref.getResourceSpecificCredentialStoreToken() != null) {
tokenIds.add(pref.getResourceSpecificCredentialStoreToken());
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/ParserService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/ParserService.java
index 3c208d7275..72400050da 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/ParserService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/ParserService.java
@@ -23,8 +23,8 @@ import java.util.List;
import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.parser.Parser;
-import org.apache.airavata.model.appcatalog.parser.ParsingTemplate;
+import org.apache.airavata.model.appcatalog.parser.proto.Parser;
+import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/ResourceService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/ResourceService.java
index b631356018..f93c33de37 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/ResourceService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/ResourceService.java
@@ -29,23 +29,22 @@ import org.apache.airavata.execution.orchestrator.AdaptorSupportImpl;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceAuthorizationException;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
-import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
-import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
-import org.apache.airavata.model.data.movement.DMType;
-import org.apache.airavata.model.data.movement.GridFTPDataMovement;
-import org.apache.airavata.model.data.movement.LOCALDataMovement;
-import org.apache.airavata.model.data.movement.SCPDataMovement;
-import org.apache.airavata.model.data.movement.UnicoreDataMovement;
-import org.apache.thrift.TApplicationException;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageDirectoryInfo;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageResourceDescription;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageVolumeInfo;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserStoragePreference;
+import org.apache.airavata.model.data.movement.proto.DMType;
+import org.apache.airavata.model.data.movement.proto.GridFTPDataMovement;
+import org.apache.airavata.model.data.movement.proto.LOCALDataMovement;
+import org.apache.airavata.model.data.movement.proto.SCPDataMovement;
+import org.apache.airavata.model.data.movement.proto.UnicoreDataMovement;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -493,8 +492,8 @@ public class ResourceService {
if (cr != null) {
computeResourceOp = Optional.of(cr);
}
- } catch (TApplicationException e) {
- logger.debug("Compute resource {} not found (TApplicationException): {}", resourceId, e.getMessage());
+ } catch (RuntimeException e) {
+ logger.debug("Compute resource {} not found (RuntimeException): {}", resourceId, e.getMessage());
} catch (Exception e) {
throw new ServiceException("Error looking up compute resource " + resourceId + ": " + e.getMessage(), e);
}
@@ -506,8 +505,8 @@ public class ResourceService {
if (sr != null) {
storageResourceOp = Optional.of(sr);
}
- } catch (TApplicationException e) {
- logger.debug("Storage resource {} not found (TApplicationException): {}", resourceId, e.getMessage());
+ } catch (RuntimeException e) {
+ logger.debug("Storage resource {} not found (RuntimeException): {}", resourceId, e.getMessage());
} catch (Exception e) {
throw new ServiceException(
"Error looking up storage resource " + resourceId + ": " + e.getMessage(), e);
@@ -578,7 +577,7 @@ public class ResourceService {
throw new ServiceException("Error retrieving group resource profiles: " + e.getMessage(), e);
}
for (GroupResourceProfile groupProfile : groupResourceProfiles) {
- List<GroupComputeResourcePreference> groupComputePrefs = groupProfile.getComputePreferences();
+ List<GroupComputeResourcePreference> groupComputePrefs = groupProfile.getComputePreferencesList();
if (groupComputePrefs != null && !groupComputePrefs.isEmpty()) {
for (GroupComputeResourcePreference groupPref : groupComputePrefs) {
if (resourceId.equals(groupPref.getComputeResourceId())
@@ -712,7 +711,7 @@ public class ResourceService {
"Gateway resource profile does not exist for gateway {}, will check user preference",
gatewayId);
}
- } catch (TApplicationException e) {
+ } catch (RuntimeException e) {
logger.debug("Gateway resource profile does not exist for gateway {}: {}", gatewayId, e.getMessage());
} catch (Exception e) {
throw new ServiceException("Error retrieving gateway storage preference: " + e.getMessage(), e);
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/service/UserResourceProfileService.java b/airavata-api/src/main/java/org/apache/airavata/compute/service/UserResourceProfileService.java
index bddecc91bd..7fe4d165eb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/service/UserResourceProfileService.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/service/UserResourceProfileService.java
@@ -23,10 +23,10 @@ import java.util.List;
import org.apache.airavata.execution.handler.RegistryServerHandler;
import org.apache.airavata.execution.service.RequestContext;
import org.apache.airavata.execution.service.ServiceException;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
-import org.apache.airavata.model.status.QueueStatusModel;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserStoragePreference;
+import org.apache.airavata.model.status.proto.QueueStatusModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/AiravataCustomCommandOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/AiravataCustomCommandOutputParser.java
index c6fb6de08f..8a9de01d00 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/AiravataCustomCommandOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/AiravataCustomCommandOutputParser.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.task;
import java.util.Map;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/DefaultJobSubmissionTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/DefaultJobSubmissionTask.java
index 176797a278..12f0372a16 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/DefaultJobSubmissionTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/DefaultJobSubmissionTask.java
@@ -28,10 +28,10 @@ import org.apache.airavata.compute.util.JobSubmissionOutput;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.*;
-import org.apache.airavata.model.workspace.GatewayUsageReportingCommand;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.*;
+import org.apache.airavata.model.workspace.proto.GatewayUsageReportingCommand;
import org.apache.helix.task.TaskResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -77,31 +77,34 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
saveAndPublishProcessStatus(ProcessState.EXECUTING);
GroovyMapData mapData = new GroovyMapBuilder(getTaskContext()).build();
- JobModel jobModel = new JobModel();
- jobModel.setProcessId(getProcessId());
- jobModel.setWorkingDir(mapData.getWorkingDirectory());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setTaskId(getTaskId());
- jobModel.setJobName(mapData.getJobName());
- jobModel.setJobDescription("Sample description");
-
JobSubmissionOutput submissionOutput = submitBatchJob(adaptor, mapData, mapData.getWorkingDirectory());
- jobModel.setJobDescription(submissionOutput.getDescription());
- jobModel.setExitCode(submissionOutput.getExitCode());
- jobModel.setStdErr(submissionOutput.getStdErr());
- jobModel.setStdOut(submissionOutput.getStdOut());
+ JobModel jobModel = JobModel.newBuilder()
+ .setProcessId(getProcessId())
+ .setWorkingDir(mapData.getWorkingDirectory())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setTaskId(getTaskId())
+ .setJobName(mapData.getJobName())
+ .setJobDescription(submissionOutput.getDescription())
+ .setExitCode(submissionOutput.getExitCode())
+ .setStdErr(submissionOutput.getStdErr())
+ .setStdOut(submissionOutput.getStdOut())
+ .build();
jobId = submissionOutput.getJobId();
if (submissionOutput.getExitCode() != 0 || submissionOutput.isJobSubmissionFailed()) {
- jobModel.setJobId(DEFAULT_JOB_ID);
+ jobModel = jobModel.toBuilder().setJobId(DEFAULT_JOB_ID).build();
if (submissionOutput.isJobSubmissionFailed()) {
- List<JobStatus> statusList = new ArrayList<>();
- statusList.add(new JobStatus(JobState.FAILED));
- statusList.get(0).setReason(submissionOutput.getFailureReason());
- jobModel.setJobStatuses(statusList);
+ JobStatus failedStatus = JobStatus.newBuilder()
+ .setJobState(JobState.FAILED)
+ .setReason(submissionOutput.getFailureReason())
+ .build();
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(failedStatus)
+ .build();
saveJobModel(jobModel);
logger.error("Job submission failed for job name " + jobModel.getJobName()
+ ". Exit code : " + submissionOutput.getExitCode() + ", Submission failed : "
@@ -118,19 +121,19 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
} else {
String msg;
saveJobModel(jobModel);
- ErrorModel errorModel = new ErrorModel();
+ ErrorModel.Builder errorModelBuilder = ErrorModel.newBuilder();
if (submissionOutput.getExitCode() != Integer.MIN_VALUE) {
msg = "Returned non zero exit code:" + submissionOutput.getExitCode() + " for JobName:"
+ jobModel.getJobName() + ", with failure reason : "
+ submissionOutput.getFailureReason()
+ " Hence changing job state to Failed.";
- errorModel.setActualErrorMessage(submissionOutput.getFailureReason());
+ errorModelBuilder.setActualErrorMessage(submissionOutput.getFailureReason());
} else {
msg = "Didn't return valid job submission exit code for JobName:" + jobModel.getJobName()
+ ", with failure reason : stdout ->"
+ submissionOutput.getStdOut() + " stderr -> "
+ submissionOutput.getStdErr() + " Hence changing job state to Failed.";
- errorModel.setActualErrorMessage(msg);
+ errorModelBuilder.setActualErrorMessage(msg);
}
logger.error(msg);
return onFail(msg, false, null);
@@ -139,24 +142,33 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
} else if (jobId != null && !jobId.isEmpty()) {
logger.info("Received job id " + jobId + " from compute resource");
- jobModel.setJobId(jobId);
+ jobModel = jobModel.toBuilder().setJobId(jobId).build();
saveJobModel(jobModel);
- JobStatus jobStatus = new JobStatus();
- jobStatus.setJobState(JobState.SUBMITTED);
- jobStatus.setReason("Successfully Submitted to "
- + getComputeResourceDescription().getHostName());
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setJobState(JobState.SUBMITTED)
+ .setReason("Successfully Submitted to "
+ + getComputeResourceDescription().getHostName())
+ .setTimeOfStateChange(
+ AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(jobStatus)
+ .build();
saveAndPublishJobStatus(jobModel);
if (verifyJobSubmissionByJobId(adaptor, jobId)) {
- jobStatus.setJobState(JobState.QUEUED);
- jobStatus.setReason("Verification step succeeded");
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
+ JobStatus queuedStatus = JobStatus.newBuilder()
+ .setJobState(JobState.QUEUED)
+ .setReason("Verification step succeeded")
+ .setTimeOfStateChange(
+ AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(queuedStatus)
+ .build();
saveAndPublishJobStatus(jobModel);
}
@@ -169,14 +181,18 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
if (verifyJobId != null && !verifyJobId.isEmpty()) {
// JobStatus either changed from SUBMITTED to QUEUED or directly to QUEUED
jobId = verifyJobId;
- jobModel.setJobId(jobId);
+ jobModel = jobModel.toBuilder().setJobId(jobId).build();
saveJobModel(jobModel);
- JobStatus jobStatus = new JobStatus();
- jobStatus.setJobState(JobState.QUEUED);
- jobStatus.setReason("Verification step succeeded");
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setJobState(JobState.QUEUED)
+ .setReason("Verification step succeeded")
+ .setTimeOfStateChange(
+ AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(jobStatus)
+ .build();
saveAndPublishJobStatus(jobModel);
logger.info("Job id " + verifyJobId + " verification succeeded");
break;
@@ -188,7 +204,7 @@ public class DefaultJobSubmissionTask extends JobSubmissionTask {
}
if (jobId == null || jobId.isEmpty()) {
- jobModel.setJobId(DEFAULT_JOB_ID);
+ jobModel = jobModel.toBuilder().setJobId(DEFAULT_JOB_ID).build();
saveJobModel(jobModel);
String msg = "expId:" + getExperimentId() + " Couldn't find " + "remote jobId for JobName:"
+ jobModel.getJobName() + ", both submit and verify steps " + "doesn't return a valid JobId. "
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobConfiguration.java
index 75774fb0a6..d3370a640f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobConfiguration.java
@@ -21,11 +21,11 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
public class ForkJobConfiguration implements JobManagerConfiguration {
- private final Map<JobManagerCommand, String> jobManagerCommands;
+ private final Map<Integer, String> jobManagerCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -35,7 +35,7 @@ public class ForkJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobSubmissionTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobSubmissionTask.java
index 246719f2d8..61c9cb0b5c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobSubmissionTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkJobSubmissionTask.java
@@ -26,9 +26,9 @@ import org.apache.airavata.compute.util.JobSubmissionOutput;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.apache.helix.task.TaskResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,13 +45,6 @@ public class ForkJobSubmissionTask extends JobSubmissionTask {
try {
GroovyMapData mapData = new GroovyMapBuilder(getTaskContext()).build();
- JobModel jobModel = new JobModel();
- jobModel.setProcessId(getProcessId());
- jobModel.setWorkingDir(mapData.getWorkingDirectory());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setTaskId(getTaskId());
- jobModel.setJobName(mapData.getJobName());
-
AgentAdaptor adaptor = taskHelper
.getAdaptorSupport()
.fetchAdaptor(
@@ -63,23 +56,34 @@ public class ForkJobSubmissionTask extends JobSubmissionTask {
JobSubmissionOutput submissionOutput = submitBatchJob(adaptor, mapData, mapData.getWorkingDirectory());
- jobModel.setJobDescription(submissionOutput.getDescription());
- jobModel.setExitCode(submissionOutput.getExitCode());
- jobModel.setStdErr(submissionOutput.getStdErr());
- jobModel.setStdOut(submissionOutput.getStdOut());
+ JobModel jobModel = JobModel.newBuilder()
+ .setProcessId(getProcessId())
+ .setWorkingDir(mapData.getWorkingDirectory())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setTaskId(getTaskId())
+ .setJobName(mapData.getJobName())
+ .setJobDescription(submissionOutput.getDescription())
+ .setExitCode(submissionOutput.getExitCode())
+ .setStdErr(submissionOutput.getStdErr())
+ .setStdOut(submissionOutput.getStdOut())
+ .build();
String jobId = submissionOutput.getJobId();
if (jobId != null && !jobId.isEmpty()) {
- jobModel.setJobId(jobId);
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setJobState(JobState.SUBMITTED)
+ .setReason("Successfully Submitted to "
+ + getComputeResourceDescription().getHostName())
+ .setTimeOfStateChange(
+ AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ jobModel = jobModel.toBuilder()
+ .setJobId(jobId)
+ .clearJobStatuses()
+ .addJobStatuses(jobStatus)
+ .build();
saveJobModel(jobModel);
- JobStatus jobStatus = new JobStatus();
- jobStatus.setJobState(JobState.SUBMITTED);
- jobStatus.setReason("Successfully Submitted to "
- + getComputeResourceDescription().getHostName());
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
saveAndPublishJobStatus(jobModel);
return onSuccess("Job submitted successfully");
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkOutputParser.java
index 9be6948c30..e66b13ab79 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/ForkOutputParser.java
@@ -21,7 +21,7 @@ package org.apache.airavata.compute.task;
import java.util.Map;
import org.apache.airavata.common.util.AiravataUtils;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/GroovyMapBuilder.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/GroovyMapBuilder.java
index c7fc9c6e29..b975a83a21 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/GroovyMapBuilder.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/GroovyMapBuilder.java
@@ -31,18 +31,17 @@ import java.util.stream.Collectors;
import org.apache.airavata.common.config.ServerSettings;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskOnFailException;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.CommandObject;
-import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.parallelism.ApplicationParallelismType;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.task.JobSubmissionTaskModel;
-import org.apache.thrift.TException;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.CommandObject;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.SetEnvPaths;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
+import org.apache.airavata.model.application.io.proto.DataType;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.parallelism.proto.ApplicationParallelismType;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.task.proto.JobSubmissionTaskModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -92,25 +91,25 @@ public class GroovyMapBuilder {
// }
List<String> inputValues =
- getProcessInputValues(taskContext.getProcessModel().getProcessInputs(), true);
- inputValues.addAll(getProcessOutputValues(taskContext.getProcessModel().getProcessOutputs(), true));
+ getProcessInputValues(taskContext.getProcessModel().getProcessInputsList(), true);
+ inputValues.addAll(getProcessOutputValues(taskContext.getProcessModel().getProcessOutputsList(), true));
mapData.setInputs(inputValues);
List<String> inputFiles =
- getProcessInputFiles(taskContext.getProcessModel().getProcessInputs(), false);
+ getProcessInputFiles(taskContext.getProcessModel().getProcessInputsList(), false);
mapData.setInputFiles(inputFiles);
List<String> inputValuesAll =
- getProcessInputValues(taskContext.getProcessModel().getProcessInputs(), false);
+ getProcessInputValues(taskContext.getProcessModel().getProcessInputsList(), false);
inputValuesAll.addAll(
- getProcessOutputValues(taskContext.getProcessModel().getProcessOutputs(), false));
+ getProcessOutputValues(taskContext.getProcessModel().getProcessOutputsList(), false));
mapData.setInputsAll(inputValuesAll);
mapData.setUserName(taskContext.getComputeResourceLoginUserName());
mapData.setShellName("/bin/bash");
String hostName = taskContext.getComputeResourceDescription().getHostName();
- List<String> hostAliases = taskContext.getComputeResourceDescription().getHostAliases();
+ List<String> hostAliases = taskContext.getComputeResourceDescription().getHostAliasesList();
if (hostAliases != null && hostAliases.size() > 0) {
hostName = hostAliases.get(0);
}
@@ -124,7 +123,7 @@ public class GroovyMapBuilder {
mapData.setMaxWallTime(maxWallTimeCalculator(jobSubmissionTaskModel.getWallTime()));
mapData.setWallTimeInSeconds(jobSubmissionTaskModel.getWallTime() * 60);
}
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Error while getting job submission sub task model", e);
}
}
@@ -176,7 +175,7 @@ public class GroovyMapBuilder {
ApplicationDeploymentDescription appDepDescription = taskContext.getApplicationDeploymentDescription();
- List<SetEnvPaths> exportCommands = appDepDescription.getSetEnvironment();
+ List<SetEnvPaths> exportCommands = appDepDescription.getSetEnvironmentList();
if (exportCommands != null) {
List<String> exportCommandList = exportCommands.stream()
.sorted((e1, e2) -> e1.getEnvPathOrder() - e2.getEnvPathOrder())
@@ -185,7 +184,7 @@ public class GroovyMapBuilder {
mapData.setExports(exportCommandList);
}
- List<CommandObject> moduleCmds = appDepDescription.getModuleLoadCmds();
+ List<CommandObject> moduleCmds = appDepDescription.getModuleLoadCmdsList();
if (moduleCmds != null) {
List<String> modulesCmdCollect = moduleCmds.stream()
.sorted((e1, e2) -> e1.getCommandOrder() - e2.getCommandOrder())
@@ -194,7 +193,7 @@ public class GroovyMapBuilder {
mapData.setModuleCommands(modulesCmdCollect);
}
- List<CommandObject> preJobCommands = appDepDescription.getPreJobCommands();
+ List<CommandObject> preJobCommands = appDepDescription.getPreJobCommandsList();
if (preJobCommands != null) {
List<String> preJobCmdCollect = preJobCommands.stream()
.sorted((e1, e2) -> e1.getCommandOrder() - e2.getCommandOrder())
@@ -203,7 +202,7 @@ public class GroovyMapBuilder {
mapData.setPreJobCommands(preJobCmdCollect);
}
- List<CommandObject> postJobCommands = appDepDescription.getPostJobCommands();
+ List<CommandObject> postJobCommands = appDepDescription.getPostJobCommandsList();
if (postJobCommands != null) {
List<String> postJobCmdCollect = postJobCommands.stream()
.sorted((e1, e2) -> e1.getCommandOrder() - e2.getCommandOrder())
@@ -215,10 +214,10 @@ public class GroovyMapBuilder {
ApplicationParallelismType parallelism = appDepDescription.getParallelism();
if (parallelism != null) {
if (parallelism != ApplicationParallelismType.SERIAL) {
- Map<ApplicationParallelismType, String> parallelismPrefix =
- taskContext.getResourceJobManager().getParallelismPrefix();
+ Map<Integer, String> parallelismPrefix =
+ taskContext.getResourceJobManager().getParallelismPrefixMap();
if (parallelismPrefix != null) {
- String parallelismCommand = parallelismPrefix.get(parallelism);
+ String parallelismCommand = parallelismPrefix.get(parallelism.getNumber());
if (parallelismCommand != null) {
mapData.setJobSubmitterCommand(parallelismCommand);
} else {
@@ -259,11 +258,11 @@ public class GroovyMapBuilder {
sortedInputSet.add(input);
}
for (InputDataObjectType inputDataObjectType : sortedInputSet) {
- if (commandLineOnly && !inputDataObjectType.isRequiredToAddedToCommandLine()) {
+ if (commandLineOnly && !inputDataObjectType.getRequiredToAddedToCommandLine()) {
continue;
}
- if (!inputDataObjectType.isIsRequired()
+ if (!inputDataObjectType.getIsRequired()
&& (inputDataObjectType.getValue() == null || "".equals(inputDataObjectType.getValue()))) {
// For URI/ Collection non required inputs, if the value is empty, ignore it. Fix for airavata-3276
continue;
@@ -320,7 +319,7 @@ public class GroovyMapBuilder {
sortedInputSet.add(input);
}
for (InputDataObjectType inputDataObjectType : sortedInputSet) {
- if (!inputDataObjectType.isIsRequired()
+ if (!inputDataObjectType.getIsRequired()
&& (inputDataObjectType.getValue() == null || "".equals(inputDataObjectType.getValue()))) {
// For URI/ Collection non required inputs, if the value is empty, ignore it. Fix for airavata-3276
continue;
@@ -366,7 +365,7 @@ public class GroovyMapBuilder {
if (commandLineOnly) {
if (output.getValue() != null
&& !output.getValue().equals("")
- && output.isRequiredToAddedToCommandLine()) {
+ && output.getRequiredToAddedToCommandLine()) {
if (output.getType() == DataType.URI) {
String filePath = output.getValue();
filePath =
@@ -456,8 +455,8 @@ public class GroovyMapBuilder {
emailIds = userJobNotifEmailIds;
}
}
- if (processModel.isEnableEmailNotification()) {
- List<String> emailList = processModel.getEmailAddresses();
+ if (processModel.getEnableEmailNotification()) {
+ List<String> emailList = processModel.getEmailAddressesList();
if (emailList == null) {
throw new TaskOnFailException(
"At least one email should be provided as the email notification is turned on",
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorJobConfiguration.java
index 5677078d80..564fc69a67 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorJobConfiguration.java
@@ -21,11 +21,11 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
public class HTCondorJobConfiguration implements JobManagerConfiguration {
- private final Map<JobManagerCommand, String> jMCommands;
+ private final Map<Integer, String> jMCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -35,7 +35,7 @@ public class HTCondorJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
@@ -51,7 +51,7 @@ public class HTCondorJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getCancelCommand(String jobID) {
return new RawCommandInfo(
- this.installedPath + jMCommands.get(JobManagerCommand.DELETION).trim() + " " + jobID);
+ this.installedPath + jMCommands.get(JobManagerCommand.DELETION.getNumber()).trim() + " " + jobID);
}
public String getJobDescriptionTemplateName() {
@@ -64,7 +64,7 @@ public class HTCondorJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getMonitorCommand(String jobID) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " " + jobID + " -nobatch");
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " " + jobID + " -nobatch");
}
public String getScriptExtension() {
@@ -73,7 +73,7 @@ public class HTCondorJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getSubmitCommand(String workingDirectory, String pbsFilePath) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.SUBMISSION).trim() + " " + workingDirectory + File.separator
+ + jMCommands.get(JobManagerCommand.SUBMISSION.getNumber()).trim() + " " + workingDirectory + File.separator
+ FilenameUtils.getName(pbsFilePath));
}
@@ -95,28 +95,28 @@ public class HTCondorJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getUserBasedMonitorCommand(String userName) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " -submitter " + userName);
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " -submitter " + userName);
}
@Override
public RawCommandInfo getJobIdMonitorCommand(String jobName, String userName) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " " + jobName + " -submitter " + userName);
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " " + jobName + " -submitter " + userName);
}
@Override
public String getBaseCancelCommand() {
- return jMCommands.get(JobManagerCommand.DELETION).trim();
+ return jMCommands.get(JobManagerCommand.DELETION.getNumber()).trim();
}
@Override
public String getBaseMonitorCommand() {
- return jMCommands.get(JobManagerCommand.JOB_MONITORING).trim();
+ return jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim();
}
@Override
public String getBaseSubmitCommand() {
- return jMCommands.get(JobManagerCommand.SUBMISSION).trim();
+ return jMCommands.get(JobManagerCommand.SUBMISSION.getNumber()).trim();
}
@Override
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorOutputParser.java
index 958954e0c5..ec5323e8ad 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/HTCondorOutputParser.java
@@ -24,8 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -80,9 +80,9 @@ public class HTCondorOutputParser implements OutputParser {
if (matcher.find()) {
if (matcher.group(STATUS).equals("E")) {
log.info("parsing the job status returned : " + STATUS);
- return new JobStatus(JobState.FAILED);
+ return JobStatus.newBuilder().setJobState(JobState.FAILED).build();
}
- return new JobStatus(JobUtil.getJobState(matcher.group(STATUS)));
+ return JobStatus.newBuilder().setJobState(JobUtil.getJobState(matcher.group(STATUS)).build());
}
}
return null;
@@ -125,9 +125,9 @@ public class HTCondorOutputParser implements OutputParser {
columnList.set(4, "Er");
}
try {
- statusMap.put(jobID, new JobStatus(JobState.valueOf(columnList.get(4))));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf(columnList.get(4)).build()));
} catch (IndexOutOfBoundsException e) {
- statusMap.put(jobID, new JobStatus(JobState.valueOf("U")));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf("U")).build());
}
found = true;
break;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobFactory.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobFactory.java
index 1280de0456..7799308285 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobFactory.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobFactory.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.task;
import org.apache.airavata.execution.util.cpi.AppCatalogException;
-import org.apache.airavata.model.appcatalog.computeresource.*;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -116,42 +116,42 @@ public class JobFactory {
templateFileName,
".pbs",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new PBSOutputParser());
case SLURM:
return new SlurmJobConfiguration(
templateFileName,
".slurm",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new SlurmOutputParser());
case LSF:
return new LSFJobConfiguration(
templateFileName,
".lsf",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new LSFOutputParser());
case UGE:
return new UGEJobConfiguration(
templateFileName,
".pbs",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new UGEOutputParser());
case FORK:
return new ForkJobConfiguration(
templateFileName,
".sh",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new ForkOutputParser());
case HTCONDOR:
return new HTCondorJobConfiguration(
templateFileName,
".submit",
resourceJobManager.getJobManagerBinPath(),
- resourceJobManager.getJobManagerCommands(),
+ resourceJobManager.getJobManagerCommandsMap(),
new HTCondorOutputParser());
case CLOUD:
return new CloudJobManagerConfiguration(templateFileName);
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobSubmissionTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobSubmissionTask.java
index 6b659cf75b..e5f7bd833d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobSubmissionTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobSubmissionTask.java
@@ -31,13 +31,12 @@ import org.apache.airavata.compute.util.AgentException;
import org.apache.airavata.compute.util.CommandOutput;
import org.apache.airavata.compute.util.JobSubmissionOutput;
import org.apache.airavata.execution.orchestrator.AiravataTask;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManagerType;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.apache.commons.io.FileUtils;
import org.apache.helix.HelixManager;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -222,7 +221,7 @@ public abstract class JobSubmissionTask extends AiravataTask {
}
@SuppressWarnings("WeakerAccess")
- public void saveJobModel(JobModel jobModel) throws TException {
+ public void saveJobModel(JobModel jobModel) throws Exception {
getRegistryServiceClient().addJob(jobModel, getProcessId());
}
@@ -231,22 +230,19 @@ public abstract class JobSubmissionTask extends AiravataTask {
try {
// first we save job jobModel to the registry for sa and then save the job status.
JobStatus jobStatus;
- if (jobModel.getJobStatuses() != null && !jobModel.getJobStatuses().isEmpty()) {
- jobStatus = jobModel.getJobStatuses().get(0);
+ if (jobModel.getJobStatusesList() != null && !jobModel.getJobStatusesList().isEmpty()) {
+ jobStatus = jobModel.getJobStatusesList().get(0);
} else {
logger.error("Job statuses can not be empty");
return;
}
- List<JobStatus> statuses = new ArrayList<>();
- statuses.add(jobStatus);
- jobModel.setJobStatuses(statuses);
-
- if (jobStatus.getTimeOfStateChange() == 0 || jobStatus.getTimeOfStateChange() > 0) {
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- } else {
- jobStatus.setTimeOfStateChange(jobStatus.getTimeOfStateChange());
+ // Ensure timeOfStateChange is set
+ if (jobStatus.getTimeOfStateChange() == 0) {
+ jobStatus = jobStatus.toBuilder()
+ .setTimeOfStateChange(
+ AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
}
getRegistryServiceClient().addJobStatus(jobStatus, jobModel.getTaskId(), jobModel.getJobId());
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobUtil.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobUtil.java
index 9b524311d2..f0ec1fc854 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/JobUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/JobUtil.java
@@ -19,7 +19,7 @@
*/
package org.apache.airavata.compute.task;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFJobConfiguration.java
index 33013254d6..7c11c35389 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFJobConfiguration.java
@@ -21,14 +21,14 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LSFJobConfiguration implements JobManagerConfiguration {
private static final Logger logger = LoggerFactory.getLogger(LSFJobConfiguration.class);
- private final Map<JobManagerCommand, String> jobMangerCommands;
+ private final Map<Integer, String> jobMangerCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -38,7 +38,7 @@ public class LSFJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFOutputParser.java
index bd9b47f79f..2564b623bb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/LSFOutputParser.java
@@ -25,8 +25,8 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,9 +79,9 @@ public class LSFOutputParser implements OutputParser {
}
// lastStop = i + 1;
try {
- statusMap.put(jobID, new JobStatus(JobState.valueOf(columnList.get(2))));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf(columnList.get(2)).build()));
} catch (IndexOutOfBoundsException e) {
- statusMap.put(jobID, new JobStatus(JobState.valueOf("U")));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf("U")).build());
}
found = true;
break;
@@ -119,7 +119,7 @@ public class LSFOutputParser implements OutputParser {
+ "2636607 lg11w RUN long ghpcc06 c11b02 *069656647 Mar 7 00:58\n"
+ "2636582 lg11w RUN long ghpcc06 c02b01 2134490944 Mar 7 00:48";
Map<String, JobStatus> statusMap = new HashMap<String, JobStatus>();
- statusMap.put("2477983,2134490944", new JobStatus(JobState.UNKNOWN));
+ statusMap.put("2477983,2134490944", JobStatus.newBuilder().setJobState(JobState.UNKNOWN).build());
LSFOutputParser lsfOutputParser = new LSFOutputParser();
try {
lsfOutputParser.parseJobStatuses("cjh", statusMap, test1);
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/LocalJobSubmissionTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/LocalJobSubmissionTask.java
index e09394262f..6b649b7a83 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/LocalJobSubmissionTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/LocalJobSubmissionTask.java
@@ -24,7 +24,7 @@ import org.apache.airavata.common.util.AiravataUtils;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.job.JobModel;
+import org.apache.airavata.model.job.proto.JobModel;
import org.apache.helix.task.TaskResult;
@TaskDef(name = "Local Job Submission")
@@ -37,12 +37,13 @@ public class LocalJobSubmissionTask extends JobSubmissionTask {
GroovyMapData groovyMapData = new GroovyMapData();
String jobId = "JOB_ID_" + UUID.randomUUID().toString();
- JobModel jobModel = new JobModel();
- jobModel.setProcessId(getProcessId());
- jobModel.setWorkingDir(groovyMapData.getWorkingDirectory());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setTaskId(getTaskId());
- jobModel.setJobId(jobId);
+ JobModel jobModel = JobModel.newBuilder()
+ .setProcessId(getProcessId())
+ .setWorkingDir(groovyMapData.getWorkingDirectory())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setTaskId(getTaskId())
+ .setJobId(jobId)
+ .build();
return null;
} catch (Exception e) {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/OutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/OutputParser.java
index 68dfa0a5a2..fdf41f4080 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/OutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/OutputParser.java
@@ -20,7 +20,7 @@
package org.apache.airavata.compute.task;
import java.util.Map;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobStatus;
public interface OutputParser {
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSJobConfiguration.java
index 1f362c9b7a..35dbc286fd 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSJobConfiguration.java
@@ -21,12 +21,12 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
public class PBSJobConfiguration implements JobManagerConfiguration {
- private final Map<JobManagerCommand, String> jobManagerCommands;
+ private final Map<Integer, String> jobManagerCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -36,7 +36,7 @@ public class PBSJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSOutputParser.java
index 46042d212b..85664d4a01 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/PBSOutputParser.java
@@ -24,7 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -70,7 +70,7 @@ public class PBSOutputParser implements OutputParser {
line = anInfo.split("=", 2);
if (line.length != 0) {
if (line[0].contains("job_state")) {
- return new JobStatus(JobUtil.getJobState(line[1].replaceAll(" ", "")));
+ return JobStatus.newBuilder().setJobState(JobUtil.getJobState(line[1].replaceAll(" ", "")).build());
}
}
}
@@ -100,9 +100,9 @@ public class PBSOutputParser implements OutputParser {
}
// lastStop = i + 1;
try {
- statusMap.put(jobID, new JobStatus(JobUtil.getJobState(columnList.get(9))));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobUtil.getJobState(columnList.get(9)).build()));
} catch (IndexOutOfBoundsException e) {
- statusMap.put(jobID, new JobStatus(JobUtil.getJobState("U")));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobUtil.getJobState("U")).build());
}
found = true;
break;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmJobConfiguration.java
index 36826e22a0..250c29e480 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmJobConfiguration.java
@@ -21,11 +21,11 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
public class SlurmJobConfiguration implements JobManagerConfiguration {
- private final Map<JobManagerCommand, String> jMCommands;
+ private final Map<Integer, String> jMCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -35,7 +35,7 @@ public class SlurmJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
@@ -51,7 +51,7 @@ public class SlurmJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getCancelCommand(String jobID) {
return new RawCommandInfo(
- this.installedPath + jMCommands.get(JobManagerCommand.DELETION).trim() + " " + jobID);
+ this.installedPath + jMCommands.get(JobManagerCommand.DELETION.getNumber()).trim() + " " + jobID);
}
public String getJobDescriptionTemplateName() {
@@ -64,7 +64,7 @@ public class SlurmJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getMonitorCommand(String jobID) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " -j " + jobID);
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " -j " + jobID);
}
public String getScriptExtension() {
@@ -73,7 +73,7 @@ public class SlurmJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getSubmitCommand(String workingDirectory, String pbsFilePath) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.SUBMISSION).trim() + " " + workingDirectory + File.separator
+ + jMCommands.get(JobManagerCommand.SUBMISSION.getNumber()).trim() + " " + workingDirectory + File.separator
+ FilenameUtils.getName(pbsFilePath));
}
@@ -95,33 +95,33 @@ public class SlurmJobConfiguration implements JobManagerConfiguration {
public RawCommandInfo getUserBasedMonitorCommand(String userName) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " -u " + userName);
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " -u " + userName);
}
@Override
public RawCommandInfo getJobIdMonitorCommand(String jobName, String userName) {
return new RawCommandInfo(this.installedPath
- + jMCommands.get(JobManagerCommand.JOB_MONITORING).trim() + " -n " + jobName + " -u " + userName);
+ + jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim() + " -n " + jobName + " -u " + userName);
}
@Override
public String getBaseCancelCommand() {
- return jMCommands.get(JobManagerCommand.DELETION).trim();
+ return jMCommands.get(JobManagerCommand.DELETION.getNumber()).trim();
}
@Override
public String getBaseMonitorCommand() {
- return jMCommands.get(JobManagerCommand.JOB_MONITORING).trim();
+ return jMCommands.get(JobManagerCommand.JOB_MONITORING.getNumber()).trim();
}
@Override
public String getBaseSubmitCommand() {
- return jMCommands.get(JobManagerCommand.SUBMISSION).trim();
+ return jMCommands.get(JobManagerCommand.SUBMISSION.getNumber()).trim();
}
@Override
public String getLivenessCheckCommand(String queueName, String projectNumber) {
- String command = jMCommands.get(JobManagerCommand.SHOW_CLUSTER_INFO).trim() + " --account"
+ String command = jMCommands.get(JobManagerCommand.SHOW_CLUSTER_INFO.getNumber()).trim() + " --account"
+ projectNumber + " --partition "
+ queueName;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmOutputParser.java
index 3ae56d9ead..88aaa8a684 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/SlurmOutputParser.java
@@ -24,8 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,7 +63,7 @@ public class SlurmOutputParser implements OutputParser {
Pattern pattern = Pattern.compile(jobID + "(?=\\s+\\S+\\s+\\S+\\s+\\S+\\s+(?<" + STATUS + ">\\w+))");
Matcher matcher = pattern.matcher(rawOutput);
if (matcher.find()) {
- return new JobStatus(JobUtil.getJobState(matcher.group(STATUS)));
+ return JobStatus.newBuilder().setJobState(JobUtil.getJobState(matcher.group(STATUS)).build());
}
return null;
}
@@ -94,9 +94,9 @@ public class SlurmOutputParser implements OutputParser {
}
}
try {
- statusMap.put(jobID, new JobStatus(JobState.valueOf(columnList.get(4))));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf(columnList.get(4)).build()));
} catch (IndexOutOfBoundsException e) {
- statusMap.put(jobID, new JobStatus(JobState.valueOf("U")));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf("U")).build());
}
found = true;
break;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEJobConfiguration.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEJobConfiguration.java
index 24dc16cab6..e72d57c06c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEJobConfiguration.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEJobConfiguration.java
@@ -21,11 +21,11 @@ package org.apache.airavata.compute.task;
import java.io.File;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobManagerCommand;
import org.apache.commons.io.FilenameUtils;
public class UGEJobConfiguration implements JobManagerConfiguration {
- private final Map<JobManagerCommand, String> jobManagerCommands;
+ private final Map<Integer, String> jobManagerCommands;
private String jobDescriptionTemplateName;
private String scriptExtension;
private String installedPath;
@@ -35,7 +35,7 @@ public class UGEJobConfiguration implements JobManagerConfiguration {
String jobDescriptionTemplateName,
String scriptExtension,
String installedPath,
- Map<JobManagerCommand, String> jobManagerCommands,
+ Map<Integer, String> jobManagerCommands,
OutputParser parser) {
this.jobDescriptionTemplateName = jobDescriptionTemplateName;
this.scriptExtension = scriptExtension;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEOutputParser.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEOutputParser.java
index 140f0edd3b..6a57d7ee17 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEOutputParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/UGEOutputParser.java
@@ -24,8 +24,8 @@ import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -55,9 +55,9 @@ public class UGEOutputParser implements OutputParser {
Pattern pattern = Pattern.compile("job_number:[\\s]+" + jobID);
Matcher matcher = pattern.matcher(rawOutput);
if (matcher.find()) {
- return new JobStatus(JobState.QUEUED); // fixme; return correct status.
+ return JobStatus.newBuilder().setJobState(JobState.QUEUED).build(); // fixme; return correct status.
}
- return new JobStatus(JobState.UNKNOWN);
+ return JobStatus.newBuilder().setJobState(JobState.UNKNOWN).build();
}
public void parseJobStatuses(String userName, Map<String, JobStatus> statusMap, String rawOutput) {
@@ -83,7 +83,7 @@ public class UGEOutputParser implements OutputParser {
// to avoid that we make a small tweek to the job status
columnList.set(4, "Er");
}
- statusMap.put(jobID, new JobStatus(JobState.valueOf(columnList.get(4))));
+ statusMap.put(jobID, JobStatus.newBuilder().setJobState(JobState.valueOf(columnList.get(4)).build()));
break;
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSCompletingTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSCompletingTask.java
index 3d0d20da3b..492f888752 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSCompletingTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSCompletingTask.java
@@ -23,7 +23,7 @@ import org.apache.airavata.execution.orchestrator.AiravataTask;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.status.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessState;
import org.apache.helix.task.TaskResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSJobSubmissionTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSJobSubmissionTask.java
index 7ba9f175d4..2ffb6d0214 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSJobSubmissionTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSJobSubmissionTask.java
@@ -37,15 +37,14 @@ import org.apache.airavata.compute.util.SSHJAgentAdaptor;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.AwsComputeResourcePreference;
-import org.apache.airavata.model.credential.store.SSHCredential;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.ProcessState;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.AwsComputeResourcePreference;
+import org.apache.airavata.model.credential.store.proto.SSHCredential;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
+import org.apache.airavata.model.status.proto.ProcessState;
import org.apache.commons.io.FileUtils;
import org.apache.helix.task.TaskResult;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.services.ec2.Ec2Client;
@@ -112,7 +111,10 @@ public class AWSJobSubmissionTask extends JobSubmissionTask {
"aws-job-" + new SecureRandom().nextInt() + jobManagerConfig.getScriptExtension());
FileUtils.writeStringToFile(localScriptFile, scriptContent, StandardCharsets.UTF_8);
- jobModel.setJobStatuses(Collections.singletonList(new JobStatus(JobState.QUEUED)));
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(JobStatus.newBuilder().setJobState(JobState.QUEUED).build())
+ .build();
saveJobModel(jobModel);
saveAndPublishJobStatus(jobModel);
@@ -136,7 +138,10 @@ public class AWSJobSubmissionTask extends JobSubmissionTask {
return onFail(reason, false, e);
}
- jobModel.setJobStatuses(Collections.singletonList(new JobStatus(JobState.ACTIVE)));
+ jobModel = jobModel.toBuilder()
+ .clearJobStatuses()
+ .addJobStatuses(JobStatus.newBuilder().setJobState(JobState.ACTIVE).build())
+ .build();
saveJobModel(jobModel);
saveAndPublishJobStatus(jobModel);
@@ -280,39 +285,42 @@ public class AWSJobSubmissionTask extends JobSubmissionTask {
}
}
- private TaskResult handleJobSubmissionFailure(GroovyMapData mapData, String reason) throws TException {
+ private TaskResult handleJobSubmissionFailure(GroovyMapData mapData, String reason) throws Exception {
LOGGER.error(reason);
- JobModel jobModel = new JobModel();
- jobModel.setProcessId(getProcessId());
- jobModel.setWorkingDir(mapData.getWorkingDirectory());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setTaskId(getTaskId());
- jobModel.setJobName(mapData.getJobName());
-
- JobStatus jobStatus = new JobStatus(JobState.FAILED);
- jobStatus.setReason(reason);
- jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setJobState(JobState.FAILED)
+ .setReason(reason)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ JobModel jobModel = JobModel.newBuilder()
+ .setProcessId(getProcessId())
+ .setWorkingDir(mapData.getWorkingDirectory())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setTaskId(getTaskId())
+ .setJobName(mapData.getJobName())
+ .addJobStatuses(jobStatus)
+ .build();
saveJobModel(jobModel);
return onFail(reason, false, null);
}
private JobModel createJobModel(GroovyMapData mapData, String jobScript) throws Exception {
- JobModel jobModel = new JobModel();
- jobModel.setJobId("DEFAULT_JOB_ID");
- jobModel.setProcessId(getProcessId());
- jobModel.setWorkingDir(mapData.getWorkingDirectory());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- jobModel.setTaskId(getTaskId());
- jobModel.setJobName(mapData.getJobName());
- jobModel.setJobDescription(jobScript);
-
- JobStatus jobStatus = new JobStatus(JobState.SUBMITTED);
- jobStatus.setReason("Job submitted to EC2 instance with PID: " + "DEFAULT_JOB_ID");
- jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-
- jobModel.setJobStatuses(Collections.singletonList(jobStatus));
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setJobState(JobState.SUBMITTED)
+ .setReason("Job submitted to EC2 instance with PID: " + "DEFAULT_JOB_ID")
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+ JobModel jobModel = JobModel.newBuilder()
+ .setJobId("DEFAULT_JOB_ID")
+ .setProcessId(getProcessId())
+ .setWorkingDir(mapData.getWorkingDirectory())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setTaskId(getTaskId())
+ .setJobName(mapData.getJobName())
+ .setJobDescription(jobScript)
+ .addJobStatuses(jobStatus)
+ .build();
saveJobModel(jobModel);
saveAndPublishJobStatus(jobModel);
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSProcessContextManager.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSProcessContextManager.java
index d8c1f7764d..968ceebdc2 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSProcessContextManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSProcessContextManager.java
@@ -26,9 +26,8 @@ import java.util.HashMap;
import java.util.Map;
import org.apache.airavata.compute.util.AgentUtils;
import org.apache.airavata.execution.orchestrator.TaskContext;
-import org.apache.airavata.model.process.ProcessModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -62,7 +61,7 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_INSTANCE_ID_KEY);
}
- public void saveInstanceId(String instanceId) throws TException, IOException {
+ public void saveInstanceId(String instanceId) throws Exception, IOException {
updateContext(AWS_INSTANCE_ID_KEY, instanceId);
}
@@ -70,7 +69,7 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_SECURITY_GROUP_ID_KEY);
}
- public void saveSecurityGroupId(String securityGroupId) throws TException, IOException {
+ public void saveSecurityGroupId(String securityGroupId) throws Exception, IOException {
updateContext(AWS_SECURITY_GROUP_ID_KEY, securityGroupId);
}
@@ -78,7 +77,7 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_KEY_PAIR_NAME_KEY);
}
- public void saveKeyPairName(String keyPairName) throws TException, IOException {
+ public void saveKeyPairName(String keyPairName) throws Exception, IOException {
updateContext(AWS_KEY_PAIR_NAME_KEY, keyPairName);
}
@@ -86,7 +85,7 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_SSH_CREDENTIAL_TOKEN);
}
- public void saveSSHCredentialToken(String credentialToken) throws TException, IOException {
+ public void saveSSHCredentialToken(String credentialToken) throws Exception, IOException {
updateContext(AWS_SSH_CREDENTIAL_TOKEN, credentialToken);
}
@@ -94,7 +93,7 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_PUBLIC_IP);
}
- public void savePublicIp(String publicIp) throws TException, IOException {
+ public void savePublicIp(String publicIp) throws Exception, IOException {
updateContext(AWS_PUBLIC_IP, publicIp);
}
@@ -102,11 +101,11 @@ public class AWSProcessContextManager {
return getContextMap().get(AWS_JOB_ID);
}
- public void saveJobId(String jobId) throws TException, IOException {
+ public void saveJobId(String jobId) throws Exception, IOException {
updateContext(AWS_JOB_ID, jobId);
}
- public void cleanup() throws TException, IOException {
+ public void cleanup() throws Exception, IOException {
updateContext(AWS_INSTANCE_ID_KEY, null);
updateContext(AWS_SECURITY_GROUP_ID_KEY, null);
updateContext(AWS_KEY_PAIR_NAME_KEY, null);
@@ -120,11 +119,13 @@ public class AWSProcessContextManager {
return MAPPER.readValue(jsonContext, new TypeReference<>() {});
}
- private void updateContext(String key, String value) throws TException, IOException {
+ private void updateContext(String key, String value) throws Exception, IOException {
Map<String, String> contextMap = getContextMap();
contextMap.put(key, value);
- ProcessModel processModel = taskContext.getProcessModel();
- processModel.setProcessDetail(MAPPER.writeValueAsString(contextMap));
+ ProcessModel processModel = taskContext.getProcessModel()
+ .toBuilder()
+ .setProcessDetail(MAPPER.writeValueAsString(contextMap))
+ .build();
registryClient.updateProcess(processModel, processId);
LOGGER.info("Updated process detail for process {} with key '{}'", processId, key);
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSTaskUtil.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSTaskUtil.java
index c019d5d598..b40c0d2aad 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSTaskUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/AWSTaskUtil.java
@@ -22,8 +22,8 @@ package org.apache.airavata.compute.task.aws;
import java.util.concurrent.TimeUnit;
import org.apache.airavata.compute.util.AgentUtils;
import org.apache.airavata.execution.orchestrator.TaskContext;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.AwsComputeResourcePreference;
-import org.apache.airavata.model.credential.store.PasswordCredential;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.AwsComputeResourcePreference;
+import org.apache.airavata.model.credential.store.proto.PasswordCredential;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/CreateEC2InstanceTask.java b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/CreateEC2InstanceTask.java
index d37561baf5..d47e54e6a2 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/CreateEC2InstanceTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/task/aws/CreateEC2InstanceTask.java
@@ -27,8 +27,8 @@ import org.apache.airavata.execution.orchestrator.AiravataTask;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.AwsComputeResourcePreference;
-import org.apache.airavata.model.credential.store.SSHCredential;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.AwsComputeResourcePreference;
+import org.apache.airavata.model.credential.store.proto.SSHCredential;
import org.apache.helix.task.TaskResult;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.slf4j.Logger;
@@ -133,12 +133,13 @@ public class CreateEC2InstanceTask extends AiravataTask {
}
private String saveSSHCredential(String privateKey, String publicKey) throws Exception {
- SSHCredential credential = new SSHCredential();
- credential.setGatewayId(getGatewayId());
- credential.setToken(UUID.randomUUID().toString());
- credential.setPrivateKey(privateKey);
- credential.setPublicKey(publicKey);
- credential.setUsername(getProcessModel().getUserName());
+ SSHCredential credential = SSHCredential.newBuilder()
+ .setGatewayId(getGatewayId())
+ .setToken(UUID.randomUUID().toString())
+ .setPrivateKey(privateKey)
+ .setPublicKey(publicKey)
+ .setUsername(getProcessModel().getUserName())
+ .build();
String savedToken = AgentUtils.getCredentialClient().addSSHCredential(credential);
LOGGER.info("Successfully saved temporary SSH credential with token {}", savedToken);
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/AgentAdaptor.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/AgentAdaptor.java
index 8a7f9ef44c..080a35ddf1 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/AgentAdaptor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/AgentAdaptor.java
@@ -22,8 +22,8 @@ package org.apache.airavata.compute.util;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
-import org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
-import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageDirectoryInfo;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageVolumeInfo;
import org.apache.airavata.storage.util.FileMetadata;
/**
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/AppDeploymentUtil.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/AppDeploymentUtil.java
index 21db76bd9d..af4b4d706f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/AppDeploymentUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/AppDeploymentUtil.java
@@ -19,8 +19,8 @@
*/
package org.apache.airavata.compute.util;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.SetEnvPaths;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.SetEnvPaths;
public class AppDeploymentUtil {
public static ApplicationDeploymentDescription createAppDeployment(
@@ -29,18 +29,18 @@ public class AppDeploymentUtil {
String executablePath,
String appDepDescription,
String moduleLoadCmd) {
- ApplicationDeploymentDescription description = new ApplicationDeploymentDescription();
- description.setAppModuleId(moduleId);
- description.setComputeHostId(computeHost);
- description.setExecutablePath(executablePath);
- description.setAppDeploymentDescription(appDepDescription);
- return description;
+ return ApplicationDeploymentDescription.newBuilder()
+ .setAppModuleId(moduleId)
+ .setComputeHostId(computeHost)
+ .setExecutablePath(executablePath)
+ .setAppDeploymentDescription(appDepDescription)
+ .build();
}
public static SetEnvPaths createEnvPath(String name, String val) {
- SetEnvPaths setEnvPaths = new SetEnvPaths();
- setEnvPaths.setName(name);
- setEnvPaths.setValue(val);
- return setEnvPaths;
+ return SetEnvPaths.newBuilder()
+ .setName(name)
+ .setValue(val)
+ .build();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/AppInterfaceUtil.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/AppInterfaceUtil.java
index d5934a0bdb..dba4dacf06 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/AppInterfaceUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/AppInterfaceUtil.java
@@ -20,10 +20,10 @@
package org.apache.airavata.compute.util;
import java.util.List;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.application.io.proto.DataType;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
public class AppInterfaceUtil {
public static ApplicationInterfaceDescription createAppInterface(
@@ -31,12 +31,12 @@ public class AppInterfaceUtil {
List<String> appModules,
List<InputDataObjectType> appInputs,
List<OutputDataObjectType> appOutputs) {
- ApplicationInterfaceDescription interfaceDescription = new ApplicationInterfaceDescription();
- interfaceDescription.setApplicationName(applicationName);
- interfaceDescription.setApplicationModules(appModules);
- interfaceDescription.setApplicationInputs(appInputs);
- interfaceDescription.setApplicationOutputs(appOutputs);
- return interfaceDescription;
+ return ApplicationInterfaceDescription.newBuilder()
+ .setApplicationName(applicationName)
+ .addAllApplicationModules(appModules)
+ .addAllApplicationInputs(appInputs)
+ .addAllApplicationOutputs(appOutputs)
+ .build();
}
public static InputDataObjectType createApplicationInput(
@@ -48,23 +48,23 @@ public class AppInterfaceUtil {
boolean standardInput,
String userFriendlyDesc,
String metadata) {
- InputDataObjectType appInput = new InputDataObjectType();
- appInput.setName(name);
- appInput.setValue(value);
- appInput.setType(type);
- appInput.setMetaData(metadata);
- appInput.setApplicationArgument(applicationArgument);
- appInput.setInputOrder(order);
- appInput.setUserFriendlyDescription(userFriendlyDesc);
- appInput.setStandardInput(standardInput);
- return appInput;
+ return InputDataObjectType.newBuilder()
+ .setName(name)
+ .setValue(value)
+ .setType(type)
+ .setMetaData(metadata)
+ .setApplicationArgument(applicationArgument)
+ .setInputOrder(order)
+ .setUserFriendlyDescription(userFriendlyDesc)
+ .setStandardInput(standardInput)
+ .build();
}
public static OutputDataObjectType createApplicationOutput(String name, String value, DataType type) {
- OutputDataObjectType appOutput = new OutputDataObjectType();
- appOutput.setName(name);
- appOutput.setValue(value);
- appOutput.setType(type);
- return appOutput;
+ return OutputDataObjectType.newBuilder()
+ .setName(name)
+ .setValue(value)
+ .setType(type)
+ .build();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/GroupComputeResourcePreferenceUtil.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/GroupComputeResourcePreferenceUtil.java
index 68602790b3..73e3d94642 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/GroupComputeResourcePreferenceUtil.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/GroupComputeResourcePreferenceUtil.java
@@ -19,11 +19,11 @@
*/
package org.apache.airavata.compute.util;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourceReservation;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.EnvironmentSpecificPreferences;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.SlurmComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourceReservation;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.EnvironmentSpecificPreferences;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.SlurmComputeResourcePreference;
public class GroupComputeResourcePreferenceUtil {
@@ -36,18 +36,18 @@ public class GroupComputeResourcePreferenceUtil {
}
EnvironmentSpecificPreferences esp = groupComputeResourcePreference.getSpecificPreferences();
- if (esp == null || !esp.isSetSlurm()) {
+ if (esp == null || !esp.hasSlurm()) {
return null;
}
SlurmComputeResourcePreference slurm = esp.getSlurm();
- if (!slurm.isSetReservations() || slurm.getReservationsSize() == 0) {
+ if (slurm.getReservationsList().isEmpty()) {
return null;
}
long now = System.currentTimeMillis();
- for (ComputeResourceReservation reservation : slurm.getReservations()) {
- if (reservation.getQueueNames().contains(queueName)
+ for (ComputeResourceReservation reservation : slurm.getReservationsList()) {
+ if (reservation.getQueueNamesList().contains(queueName)
&& now > reservation.getStartTime()
&& now < reservation.getEndTime()) {
return reservation;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/SSHJAgentAdaptor.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/SSHJAgentAdaptor.java
index cbeedd190f..e8171e9b42 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/SSHJAgentAdaptor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/SSHJAgentAdaptor.java
@@ -42,13 +42,13 @@ import net.schmizz.sshj.xfer.FilePermission;
import net.schmizz.sshj.xfer.LocalDestFile;
import net.schmizz.sshj.xfer.LocalFileFilter;
import net.schmizz.sshj.xfer.LocalSourceFile;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
-import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
-import org.apache.airavata.model.credential.store.SSHCredential;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageDirectoryInfo;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageVolumeInfo;
+import org.apache.airavata.model.credential.store.proto.SSHCredential;
import org.apache.airavata.storage.util.FileMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -723,9 +723,10 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
long numberOfKBytes = Long.parseLong(numberOfKBytesStr);
- StorageDirectoryInfo storageDirectoryInfo = new StorageDirectoryInfo();
- storageDirectoryInfo.setTotalSizeBytes(numberOfKBytes * 1024);
- storageDirectoryInfo.setTotalSize(numberOfKBytes + "kb");
+ StorageDirectoryInfo storageDirectoryInfo = StorageDirectoryInfo.newBuilder()
+ .setTotalSizeBytes(numberOfKBytes * 1024)
+ .setTotalSize(numberOfKBytes + "kb")
+ .build();
return storageDirectoryInfo;
} catch (Exception e) {
@@ -794,16 +795,17 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
double percentageUsed = Double.parseDouble(capacityStr);
- StorageVolumeInfo volumeInfo = new StorageVolumeInfo();
- volumeInfo.setTotalSize(totalSizeHuman);
- volumeInfo.setUsedSize(usedSizeHuman);
- volumeInfo.setAvailableSize(availableSizeHuman);
- volumeInfo.setTotalSizeBytes(totalSizeBytes);
- volumeInfo.setUsedSizeBytes(usedSizeBytes);
- volumeInfo.setAvailableSizeBytes(availableSizeBytes);
- volumeInfo.setPercentageUsed(percentageUsed);
- volumeInfo.setMountPoint(mountPoint);
- volumeInfo.setFilesystemType(filesystemType);
+ StorageVolumeInfo volumeInfo = StorageVolumeInfo.newBuilder()
+ .setTotalSize(totalSizeHuman)
+ .setUsedSize(usedSizeHuman)
+ .setAvailableSize(availableSizeHuman)
+ .setTotalSizeBytes(totalSizeBytes)
+ .setUsedSizeBytes(usedSizeBytes)
+ .setAvailableSizeBytes(availableSizeBytes)
+ .setPercentageUsed(percentageUsed)
+ .setMountPoint(mountPoint)
+ .setFilesystemType(filesystemType)
+ .build();
return volumeInfo;
diff --git a/airavata-api/src/main/java/org/apache/airavata/compute/util/SshAgentAdaptor.java b/airavata-api/src/main/java/org/apache/airavata/compute/util/SshAgentAdaptor.java
index 7984a027d4..a5d6be0b05 100644
--- a/airavata-api/src/main/java/org/apache/airavata/compute/util/SshAgentAdaptor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/compute/util/SshAgentAdaptor.java
@@ -24,10 +24,10 @@ import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.appcatalog.storageresource.StorageDirectoryInfo;
-import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
-import org.apache.airavata.model.credential.store.SSHCredential;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageDirectoryInfo;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageVolumeInfo;
+import org.apache.airavata.model.credential.store.proto.SSHCredential;
import org.apache.airavata.storage.util.FileMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/credential/task/EnvSetupTask.java b/airavata-api/src/main/java/org/apache/airavata/credential/task/EnvSetupTask.java
index 582c2c4e8e..1557f2c37b 100644
--- a/airavata-api/src/main/java/org/apache/airavata/credential/task/EnvSetupTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/credential/task/EnvSetupTask.java
@@ -25,7 +25,7 @@ import org.apache.airavata.execution.orchestrator.AiravataTask;
import org.apache.airavata.execution.orchestrator.TaskContext;
import org.apache.airavata.execution.orchestrator.TaskDef;
import org.apache.airavata.execution.orchestrator.TaskHelper;
-import org.apache.airavata.model.status.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessState;
import org.apache.helix.task.TaskResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
index 8d4b5f100a..858984c06e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServerHandler.java
@@ -30,53 +30,53 @@ import org.apache.airavata.execution.repository.WorkflowRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.cpi.*;
import org.apache.airavata.execution.util.cpi.Constants;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.appcatalog.gatewaygroups.GatewayGroups;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.parser.Parser;
-import org.apache.airavata.model.appcatalog.parser.ParserInput;
-import org.apache.airavata.model.appcatalog.parser.ParserOutput;
-import org.apache.airavata.model.appcatalog.parser.ParsingTemplate;
-import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.data.movement.*;
-import org.apache.airavata.model.data.movement.DMType;
-import org.apache.airavata.model.data.replica.DataProductModel;
-import org.apache.airavata.model.data.replica.DataReplicaLocationModel;
-import org.apache.airavata.model.error.*;
-import org.apache.airavata.model.experiment.*;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.process.ProcessWorkflow;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.*;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.user.UserProfile;
-import org.apache.airavata.model.workspace.Gateway;
-import org.apache.airavata.model.workspace.GatewayUsageReportingCommand;
-import org.apache.airavata.model.workspace.Notification;
-import org.apache.airavata.model.workspace.Project;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationModule;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
+import org.apache.airavata.model.appcatalog.gatewaygroups.proto.GatewayGroups;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.parser.proto.Parser;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserInput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParserOutput;
+import org.apache.airavata.model.appcatalog.parser.proto.ParsingTemplate;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageResourceDescription;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserStoragePreference;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.data.movement.proto.*;
+import org.apache.airavata.model.data.movement.proto.DMType;
+import org.apache.airavata.model.data.replica.proto.DataProductModel;
+import org.apache.airavata.model.data.replica.proto.DataReplicaLocationModel;
+import org.apache.airavata.model.error.proto.*;
+import org.apache.airavata.model.experiment.proto.*;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.process.proto.ProcessWorkflow;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.status.proto.*;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.user.proto.UserProfile;
+import org.apache.airavata.model.workspace.proto.Gateway;
+import org.apache.airavata.model.workspace.proto.GatewayUsageReportingCommand;
+import org.apache.airavata.model.workspace.proto.Notification;
+import org.apache.airavata.model.workspace.proto.Project;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.registry.api.exception.RegistryServiceException;
import org.apache.airavata.registry.api.registry_apiConstants;
import org.apache.airavata.storage.repository.DataProductRepository;
import org.apache.airavata.storage.repository.DataReplicaLocationRepository;
import org.apache.airavata.storage.repository.StorageResourceRepository;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@@ -131,7 +131,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Fetch Apache Registry API version
*/
@Override
- public String getAPIVersion() throws TException {
+ public String getAPIVersion() throws Exception {
return registry_apiConstants.REGISTRY_API_VERSION;
}
@@ -143,7 +143,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @return true/false
*/
@Override
- public boolean isUserExists(String gatewayId, String userName) throws RegistryServiceException, TException {
+ public boolean isUserExists(String gatewayId, String userName) throws RegistryServiceException, Exception {
try {
return userRepository.isUserExists(gatewayId, userName);
} catch (RegistryException e) {
@@ -162,7 +162,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* list of usernames of the users in the gateway
*/
@Override
- public List<String> getAllUsersInGateway(String gatewayId) throws RegistryServiceException, TException {
+ public List<String> getAllUsersInGateway(String gatewayId) throws RegistryServiceException, Exception {
try {
return userRepository.getAllUsernamesInGateway(gatewayId);
} catch (RegistryException e) {
@@ -181,7 +181,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Gateway obejct.
*/
@Override
- public Gateway getGateway(String gatewayId) throws RegistryServiceException, TException {
+ public Gateway getGateway(String gatewayId) throws RegistryServiceException, Exception {
try {
if (!gatewayRepository.isGatewayExist(gatewayId)) {
logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
@@ -208,7 +208,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Boolean identifier for the success or failure of the deletion operation.
*/
@Override
- public boolean deleteGateway(String gatewayId) throws RegistryServiceException, TException {
+ public boolean deleteGateway(String gatewayId) throws RegistryServiceException, Exception {
try {
if (!gatewayRepository.isGatewayExist(gatewayId)) {
logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
@@ -231,7 +231,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Get All the Gateways Connected to Airavata.
*/
@Override
- public List<Gateway> getAllGateways() throws RegistryServiceException, TException {
+ public List<Gateway> getAllGateways() throws RegistryServiceException, Exception {
try {
List<Gateway> gateways = gatewayRepository.getAllGateways();
logger.debug("Airavata retrieved all available gateways...");
@@ -252,7 +252,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* return the gatewayId of the existing gateway.
*/
@Override
- public boolean isGatewayExist(String gatewayId) throws RegistryServiceException, TException {
+ public boolean isGatewayExist(String gatewayId) throws RegistryServiceException, Exception {
try {
return gatewayRepository.isGatewayExist(gatewayId);
} catch (RegistryException e) {
@@ -265,7 +265,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean deleteNotification(String gatewayId, String notificationId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
notificationRepository.deleteNotification(notificationId);
return true;
@@ -279,7 +279,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public Notification getNotification(String gatewayId, String notificationId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return notificationRepository.getNotification(notificationId);
} catch (RegistryException e) {
@@ -291,7 +291,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<Notification> getAllNotifications(String gatewayId) throws RegistryServiceException, TException {
+ public List<Notification> getAllNotifications(String gatewayId) throws RegistryServiceException, Exception {
try {
List<Notification> notifications = notificationRepository.getAllGatewayNotifications(gatewayId);
return notifications;
@@ -312,7 +312,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* project data model will be returned.
*/
@Override
- public Project getProject(String projectId) throws RegistryServiceException, TException {
+ public Project getProject(String projectId) throws RegistryServiceException, Exception {
try {
if (!projectRepository.isProjectExist(projectId)) {
logger.error("Project does not exist in the system. Please provide a valid project ID...");
@@ -343,7 +343,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* NOTE: This method is not used within gateways connected with Airavata.
*/
@Override
- public boolean deleteProject(String projectId) throws RegistryServiceException, TException {
+ public boolean deleteProject(String projectId) throws RegistryServiceException, Exception {
try {
if (!projectRepository.isProjectExist(projectId)) {
logger.error("Project does not exist in the system. Please provide a valid project ID...");
@@ -374,7 +374,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<Project> getUserProjects(String gatewayId, String userName, int limit, int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!validateString(userName)) {
logger.error("Username cannot be empty. Please provide a valid user..");
RegistryServiceException exception = new RegistryServiceException();
@@ -429,7 +429,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
List<String> accessibleExpIds,
int limit,
int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -481,7 +481,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<ExperimentModel> getExperimentsInProject(String gatewayId, String projectId, int limit, int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
@@ -529,7 +529,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<ExperimentModel> getUserExperiments(String gatewayId, String userName, int limit, int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!validateString(userName)) {
logger.error("Username cannot be empty. Please provide a valid user..");
AiravataSystemException exception = new AiravataSystemException();
@@ -573,7 +573,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Identifier for the success or failure of the deletion operation.
*/
@Override
- public boolean deleteExperiment(String experimentId) throws RegistryServiceException, TException {
+ public boolean deleteExperiment(String experimentId) throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(experimentId)) {
throw new ExperimentNotFoundException(
@@ -581,7 +581,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
- if (!(experimentModel.getExperimentStatus().get(0).getState() == ExperimentState.CREATED)) {
+ if (!(experimentModel.getExperimentStatusList().get(0).getState() == ExperimentState.CREATED)) {
logger.error("Error while deleting the experiment");
throw new ExperimentCatalogException(
"Experiment is not in CREATED state. Hence cannot deleted. ID:" + experimentId);
@@ -636,7 +636,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param airavataExperimentId
*/
@Override
- public ExperimentModel getExperiment(String airavataExperimentId) throws RegistryServiceException, TException {
+ public ExperimentModel getExperiment(String airavataExperimentId) throws RegistryServiceException, Exception {
ExperimentModel experimentModel = getExperimentInternal(airavataExperimentId);
return experimentModel;
}
@@ -668,18 +668,19 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ExperimentModel getDetailedExperimentTree(String airavataExperimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ExperimentModel experimentModel = getExperimentInternal(airavataExperimentId);
List<ProcessModel> processList = processRepository.getProcessList(
Constants.FieldConstants.ExperimentConstants.EXPERIMENT_ID, experimentModel.getExperimentId());
if (processList != null) {
- processList.stream().forEach(p -> {
- // Process already has the task object
- (p).getTasks().stream().forEach(t -> {
+ List<ProcessModel> updatedProcessList = new ArrayList<>();
+ for (ProcessModel p : processList) {
+ List<TaskModel> updatedTasks = new ArrayList<>();
+ for (TaskModel t : p.getTasksList()) {
try {
List<JobModel> jobList = jobRepository.getJobList(
- Constants.FieldConstants.JobConstants.TASK_ID, ((TaskModel) t).getTaskId());
+ Constants.FieldConstants.JobConstants.TASK_ID, t.getTaskId());
if (jobList != null) {
Collections.sort(jobList, new Comparator<JobModel>() {
@Override
@@ -687,14 +688,17 @@ public class RegistryServerHandler implements RegistryService.Iface {
return (int) (o1.getCreationTime() - o2.getCreationTime());
}
});
- t.setJobs(jobList);
+ t = t.toBuilder().clearJobs().addAllJobs(jobList).build();
}
} catch (RegistryException e) {
logger.error(e.getMessage(), e);
}
- });
- });
- experimentModel.setProcesses(processList);
+ updatedTasks.add(t);
+ }
+ updatedProcessList.add(p.toBuilder().clearTasks().addAllTasks(updatedTasks).build());
+ }
+ experimentModel = experimentModel.toBuilder()
+ .clearProcesses().addAllProcesses(updatedProcessList).build();
}
logger.debug("Airavata retrieved detailed experiment with experiment id : " + airavataExperimentId);
return experimentModel;
@@ -717,7 +721,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ExperimentStatus getExperimentStatus(String airavataExperimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
ExperimentStatus experimentStatus = getExperimentStatusInternal(airavataExperimentId);
logger.debug("Airavata retrieved experiment status for experiment id : " + airavataExperimentId);
return experimentStatus;
@@ -733,7 +737,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<OutputDataObjectType> getExperimentOutputs(String airavataExperimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -763,7 +767,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<OutputDataObjectType> getIntermediateOutputs(String airavataExperimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return null;
}
@@ -776,7 +780,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public Map<String, JobStatus> getJobStatuses(String airavataExperimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -791,7 +795,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
Map<String, JobStatus> jobStatus = new HashMap<String, JobStatus>();
if (processModels != null && !processModels.isEmpty()) {
for (ProcessModel processModel : processModels) {
- List<TaskModel> tasks = processModel.getTasks();
+ List<TaskModel> tasks = processModel.getTasksList();
if (tasks != null && !tasks.isEmpty()) {
for (TaskModel task : tasks) {
String taskId = task.getTaskId();
@@ -800,7 +804,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
if (jobs != null && !jobs.isEmpty()) {
for (JobModel jobModel : jobs) {
String jobID = jobModel.getJobId();
- List<JobStatus> status = jobModel.getJobStatuses();
+ List<JobStatus> status = jobModel.getJobStatusesList();
if (status != null && status.size() > 0) {
JobStatus latestStatus = status.get(status.size() - 1);
jobStatus.put(jobID, latestStatus);
@@ -824,7 +828,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void addExperimentProcessOutputs(String outputType, List<OutputDataObjectType> outputs, String id)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (ExpCatChildDataType.PROCESS_OUTPUT.equals(ExpCatChildDataType.valueOf(outputType))) {
@@ -843,7 +847,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void addErrors(String errorType, ErrorModel errorModel, String id)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (ExpCatChildDataType.EXPERIMENT_ERROR.equals(ExpCatChildDataType.valueOf(errorType))) {
@@ -863,7 +867,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void addTaskStatus(TaskStatus taskStatus, String taskId) throws RegistryServiceException, TException {
+ public void addTaskStatus(TaskStatus taskStatus, String taskId) throws RegistryServiceException, Exception {
try {
taskStatusRepository.addTaskStatus(taskStatus, taskId);
} catch (Exception e) {
@@ -877,7 +881,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void addProcessStatus(ProcessStatus processStatus, String processId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
processStatusRepository.addProcessStatus(processStatus, processId);
} catch (Exception e) {
@@ -891,7 +895,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void updateProcessStatus(ProcessStatus processStatus, String processId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
processStatusRepository.updateProcessStatus(processStatus, processId);
} catch (Exception e) {
@@ -905,7 +909,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void updateExperimentStatus(ExperimentStatus experimentStatus, String experimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
experimentStatusRepository.updateExperimentStatus(experimentStatus, experimentId);
} catch (Exception e) {
@@ -919,7 +923,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void addJobStatus(JobStatus jobStatus, String taskId, String jobId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
JobPK jobPK = new JobPK();
jobPK.setJobId(jobId);
@@ -935,7 +939,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void addJob(JobModel jobModel, String processId) throws RegistryServiceException, TException {
+ public void addJob(JobModel jobModel, String processId) throws RegistryServiceException, Exception {
try {
jobRepository.addJob(jobModel, processId);
} catch (Exception e) {
@@ -948,7 +952,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void deleteJobs(String processId) throws RegistryServiceException, TException {
+ public void deleteJobs(String processId) throws RegistryServiceException, Exception {
try {
List<JobModel> jobs = jobRepository.getJobList(Constants.FieldConstants.JobConstants.PROCESS_ID, processId);
for (JobModel jobModel : jobs) {
@@ -965,7 +969,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addProcess(ProcessModel processModel, String experimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return processRepository.addProcess(processModel, experimentId);
} catch (Exception e) {
@@ -978,7 +982,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void updateProcess(ProcessModel processModel, String processId) throws RegistryServiceException, TException {
+ public void updateProcess(ProcessModel processModel, String processId) throws RegistryServiceException, Exception {
try {
processRepository.updateProcess(processModel, processId);
} catch (Exception e) {
@@ -991,7 +995,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public String addTask(TaskModel taskModel, String processId) throws RegistryServiceException, TException {
+ public String addTask(TaskModel taskModel, String processId) throws RegistryServiceException, Exception {
try {
return taskRepository.addTask(taskModel, processId);
} catch (Exception e) {
@@ -1004,7 +1008,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void deleteTasks(String processId) throws RegistryServiceException, TException {
+ public void deleteTasks(String processId) throws RegistryServiceException, Exception {
try {
taskRepository.deleteTasks(processId);
} catch (Exception e) {
@@ -1018,7 +1022,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public UserConfigurationDataModel getUserConfigurationData(String experimentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return experimentRepository.getUserConfigurationData(experimentId);
} catch (Exception e) {
@@ -1031,7 +1035,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public ProcessModel getProcess(String processId) throws RegistryServiceException, TException {
+ public ProcessModel getProcess(String processId) throws RegistryServiceException, Exception {
try {
return processRepository.getProcess(processId);
} catch (Exception e) {
@@ -1044,7 +1048,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<ProcessModel> getProcessList(String experimentId) throws RegistryServiceException, TException {
+ public List<ProcessModel> getProcessList(String experimentId) throws RegistryServiceException, Exception {
try {
List<ProcessModel> processModels = processRepository.getProcessList(
Constants.FieldConstants.ExperimentConstants.EXPERIMENT_ID, experimentId);
@@ -1060,7 +1064,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public ProcessStatus getProcessStatus(String processId) throws RegistryServiceException, TException {
+ public ProcessStatus getProcessStatus(String processId) throws RegistryServiceException, Exception {
try {
return processStatusRepository.getProcessStatus(processId);
} catch (Exception e) {
@@ -1074,7 +1078,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ProcessModel> getProcessListInState(ProcessState processState)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
List<ProcessModel> finalProcessList = new ArrayList<>();
@@ -1104,7 +1108,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<ProcessStatus> getProcessStatusList(String processId) throws RegistryServiceException, TException {
+ public List<ProcessStatus> getProcessStatusList(String processId) throws RegistryServiceException, Exception {
try {
return processStatusRepository.getProcessStatusList(processId);
} catch (Exception e) {
@@ -1120,7 +1124,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* queryType can be PROCESS_ID or TASK_ID
*/
@Override
- public boolean isJobExist(String queryType, String id) throws RegistryServiceException, TException {
+ public boolean isJobExist(String queryType, String id) throws RegistryServiceException, Exception {
try {
JobModel jobModel = fetchJobModel(queryType, id);
return jobModel != null;
@@ -1137,7 +1141,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* queryType can be PROCESS_ID or TASK_ID
*/
@Override
- public JobModel getJob(String queryType, String id) throws RegistryServiceException, TException {
+ public JobModel getJob(String queryType, String id) throws RegistryServiceException, Exception {
try {
JobModel jobModel = fetchJobModel(queryType, id);
if (jobModel != null) return jobModel;
@@ -1152,7 +1156,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<JobModel> getJobs(String queryType, String id) throws RegistryServiceException, TException {
+ public List<JobModel> getJobs(String queryType, String id) throws RegistryServiceException, Exception {
try {
return fetchJobModels(queryType, id);
@@ -1169,7 +1173,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public int getJobCount(
org.apache.airavata.model.status.JobStatus jobStatus, String gatewayId, double searchBackTimeInMinutes)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
List<JobStatus> jobStatusList = jobStatusRepository.getDistinctListofJobStatus(
gatewayId, jobStatus.getJobState().name(), searchBackTimeInMinutes);
@@ -1178,7 +1182,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public Map<String, Double> getAVGTimeDistribution(String gatewayId, double searchBackTimeInMinutes)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return processRepository.getAVGTimeDistribution(gatewayId, searchBackTimeInMinutes);
}
@@ -1222,7 +1226,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<OutputDataObjectType> getProcessOutputs(String processId) throws RegistryServiceException, TException {
+ public List<OutputDataObjectType> getProcessOutputs(String processId) throws RegistryServiceException, Exception {
try {
return processOutputRepository.getProcessOutputs(processId);
} catch (Exception e) {
@@ -1235,7 +1239,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<ProcessWorkflow> getProcessWorkflows(String processId) throws RegistryServiceException, TException {
+ public List<ProcessWorkflow> getProcessWorkflows(String processId) throws RegistryServiceException, Exception {
try {
return processWorkflowRepository.getProcessWorkflows(processId);
@@ -1250,7 +1254,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void addProcessWorkflow(ProcessWorkflow processWorkflow) throws RegistryServiceException, TException {
+ public void addProcessWorkflow(ProcessWorkflow processWorkflow) throws RegistryServiceException, Exception {
try {
processWorkflowRepository.addProcessWorkflow(processWorkflow, processWorkflow.getProcessId());
} catch (Exception e) {
@@ -1264,7 +1268,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<String> getProcessIds(String experimentId) throws RegistryServiceException, TException {
+ public List<String> getProcessIds(String experimentId) throws RegistryServiceException, Exception {
try {
return processRepository.getProcessIds(DBConstants.Process.EXPERIMENT_ID, experimentId);
} catch (Exception e) {
@@ -1284,7 +1288,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Job details.
*/
@Override
- public List<JobModel> getJobDetails(String airavataExperimentId) throws RegistryServiceException, TException {
+ public List<JobModel> getJobDetails(String airavataExperimentId) throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -1299,7 +1303,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
List<JobModel> jobList = new ArrayList<>();
if (processModels != null && !processModels.isEmpty()) {
for (ProcessModel processModel : processModels) {
- List<TaskModel> tasks = processModel.getTasks();
+ List<TaskModel> tasks = processModel.getTasksList();
if (tasks != null && !tasks.isEmpty()) {
for (TaskModel taskModel : tasks) {
String taskId = taskModel.getTaskId();
@@ -1328,7 +1332,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns an Application Module Object.
*/
@Override
- public ApplicationModule getApplicationModule(String appModuleId) throws RegistryServiceException, TException {
+ public ApplicationModule getApplicationModule(String appModuleId) throws RegistryServiceException, Exception {
try {
ApplicationModule module = applicationInterfaceRepository.getApplicationModule(appModuleId);
logger.debug("Airavata retrieved application module with module id : " + appModuleId);
@@ -1349,7 +1353,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns the list of all Application Module Objects.
*/
@Override
- public List<ApplicationModule> getAllAppModules(String gatewayId) throws RegistryServiceException, TException {
+ public List<ApplicationModule> getAllAppModules(String gatewayId) throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1377,7 +1381,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ApplicationModule> getAccessibleAppModules(
String gatewayId, List<String> accessibleAppIds, List<String> accessibleComputeResourceIds)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1403,7 +1407,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteApplicationModule(String appModuleId) throws RegistryServiceException, TException {
+ public boolean deleteApplicationModule(String appModuleId) throws RegistryServiceException, Exception {
try {
logger.debug("Airavata deleted application module with module id : " + appModuleId);
return applicationInterfaceRepository.removeApplicationModule(appModuleId);
@@ -1424,7 +1428,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ApplicationDeploymentDescription getApplicationDeployment(String appDeploymentId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ApplicationDeploymentDescription deployement =
applicationDeploymentRepository.getApplicationDeployement(appDeploymentId);
@@ -1446,7 +1450,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteApplicationDeployment(String appDeploymentId) throws RegistryServiceException, TException {
+ public boolean deleteApplicationDeployment(String appDeploymentId) throws RegistryServiceException, Exception {
try {
applicationDeploymentRepository.removeAppDeployment(appDeploymentId);
logger.debug("Airavata removed application deployment with deployment id : " + appDeploymentId);
@@ -1469,7 +1473,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<ApplicationDeploymentDescription> getAllApplicationDeployments(String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1498,7 +1502,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ApplicationDeploymentDescription> getAccessibleApplicationDeployments(
String gatewayId, List<String> accessibleAppDeploymentIds, List<String> accessibleComputeResourceIds)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1533,7 +1537,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
String appModuleId,
List<String> accessibleAppDeploymentIds,
List<String> accessibleComputeResourceIds)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1559,7 +1563,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a list of Deployed Resources.
*/
@Override
- public List<String> getAppModuleDeployedResources(String appModuleId) throws RegistryServiceException, TException {
+ public List<String> getAppModuleDeployedResources(String appModuleId) throws RegistryServiceException, Exception {
try {
List<String> appDeployments = new ArrayList<>();
Map<String, String> filters = new HashMap<>();
@@ -1581,7 +1585,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ApplicationDeploymentDescription> getApplicationDeployments(String appModuleId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
Map<String, String> filters = new HashMap<>();
filters.put(DBConstants.ApplicationDeployment.APPLICATION_MODULE_ID, appModuleId);
@@ -1605,7 +1609,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ApplicationInterfaceDescription getApplicationInterface(String appInterfaceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ApplicationInterfaceDescription interfaceDescription =
applicationInterfaceRepository.getApplicationInterface(appInterfaceId);
@@ -1627,7 +1631,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteApplicationInterface(String appInterfaceId) throws RegistryServiceException, TException {
+ public boolean deleteApplicationInterface(String appInterfaceId) throws RegistryServiceException, Exception {
try {
boolean removeApplicationInterface =
applicationInterfaceRepository.removeApplicationInterface(appInterfaceId);
@@ -1650,7 +1654,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public Map<String, String> getAllApplicationInterfaceNames(String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1685,7 +1689,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<ApplicationInterfaceDescription> getAllApplicationInterfaces(String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -1712,7 +1716,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<InputDataObjectType> getApplicationInputs(String appInterfaceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
List<InputDataObjectType> applicationInputs =
applicationInterfaceRepository.getApplicationInputs(appInterfaceId);
@@ -1735,7 +1739,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<OutputDataObjectType> getApplicationOutputs(String appInterfaceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
List<OutputDataObjectType> list = getApplicationOutputsInternal(appInterfaceId);
logger.debug("Airavata retrieved application outputs for app interface id : " + appInterfaceId);
return list;
@@ -1751,7 +1755,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public Map<String, String> getAvailableAppInterfaceComputeResources(String appInterfaceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
Map<String, String> allComputeResources =
new ComputeResourceRepository().getAvailableComputeResourceIdList();
@@ -1794,7 +1798,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ComputeResourceDescription getComputeResource(String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceDescription computeResource =
new ComputeResourceRepository().getComputeResource(computeResourceId);
@@ -1815,7 +1819,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Compute Resource Object created from the datamodel..
*/
@Override
- public Map<String, String> getAllComputeResourceNames() throws RegistryServiceException, TException {
+ public Map<String, String> getAllComputeResourceNames() throws RegistryServiceException, Exception {
try {
Map<String, String> computeResourceIdList = new ComputeResourceRepository().getAllComputeResourceIdList();
logger.debug("Airavata retrieved all the available compute resources...");
@@ -1836,7 +1840,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteComputeResource(String computeResourceId) throws RegistryServiceException, TException {
+ public boolean deleteComputeResource(String computeResourceId) throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().removeComputeResource(computeResourceId);
logger.debug("Airavata deleted compute resource with compute resource Id : " + computeResourceId);
@@ -1858,7 +1862,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public StorageResourceDescription getStorageResource(String storageResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
StorageResourceDescription storageResource =
storageResourceRepository.getStorageResource(storageResourceId);
@@ -1879,7 +1883,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Compute Resource Object created from the datamodel..
*/
@Override
- public Map<String, String> getAllStorageResourceNames() throws RegistryServiceException, TException {
+ public Map<String, String> getAllStorageResourceNames() throws RegistryServiceException, Exception {
try {
Map<String, String> resourceIdList = storageResourceRepository.getAllStorageResourceIdList();
logger.debug("Airavata retrieved storage resources list...");
@@ -1900,7 +1904,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteStorageResource(String storageResourceId) throws RegistryServiceException, TException {
+ public boolean deleteStorageResource(String storageResourceId) throws RegistryServiceException, Exception {
try {
storageResourceRepository.removeStorageResource(storageResourceId);
logger.debug("Airavata deleted storage resource with storage resource Id : " + storageResourceId);
@@ -1919,7 +1923,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param jobSubmissionId@return LOCALSubmission instance
*/
@Override
- public LOCALSubmission getLocalJobSubmission(String jobSubmissionId) throws RegistryServiceException, TException {
+ public LOCALSubmission getLocalJobSubmission(String jobSubmissionId) throws RegistryServiceException, Exception {
try {
LOCALSubmission localJobSubmission = new ComputeResourceRepository().getLocalJobSubmission(jobSubmissionId);
logger.debug("Airavata retrieved local job submission for job submission interface id: " + jobSubmissionId);
@@ -1939,7 +1943,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param jobSubmissionId@return SSHJobSubmission instance
*/
@Override
- public SSHJobSubmission getSSHJobSubmission(String jobSubmissionId) throws RegistryServiceException, TException {
+ public SSHJobSubmission getSSHJobSubmission(String jobSubmissionId) throws RegistryServiceException, Exception {
try {
SSHJobSubmission sshJobSubmission = new ComputeResourceRepository().getSSHJobSubmission(jobSubmissionId);
logger.debug("Airavata retrieved SSH job submission for job submission interface id: " + jobSubmissionId);
@@ -1967,7 +1971,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public UnicoreJobSubmission getUnicoreJobSubmission(String jobSubmissionId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
UnicoreJobSubmission unicoreJobSubmission =
new ComputeResourceRepository().getUNICOREJobSubmission(jobSubmissionId);
@@ -1995,7 +1999,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public CloudJobSubmission getCloudJobSubmission(String jobSubmissionId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
CloudJobSubmission cloudJobSubmission =
new ComputeResourceRepository().getCloudJobSubmission(jobSubmissionId);
@@ -2017,7 +2021,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @return LOCALDataMovement instance
*/
@Override
- public LOCALDataMovement getLocalDataMovement(String dataMovementId) throws RegistryServiceException, TException {
+ public LOCALDataMovement getLocalDataMovement(String dataMovementId) throws RegistryServiceException, Exception {
try {
LOCALDataMovement localDataMovement = new ComputeResourceRepository().getLocalDataMovement(dataMovementId);
logger.debug("Airavata retrieved local data movement with data movement id: " + dataMovementId);
@@ -2038,7 +2042,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @return SCPDataMovement instance
*/
@Override
- public SCPDataMovement getSCPDataMovement(String dataMovementId) throws RegistryServiceException, TException {
+ public SCPDataMovement getSCPDataMovement(String dataMovementId) throws RegistryServiceException, Exception {
try {
SCPDataMovement scpDataMovement = new ComputeResourceRepository().getSCPDataMovement(dataMovementId);
logger.debug("Airavata retrieved SCP data movement with data movement id: " + dataMovementId);
@@ -2060,7 +2064,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public UnicoreDataMovement getUnicoreDataMovement(String dataMovementId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
UnicoreDataMovement unicoreDataMovement =
new ComputeResourceRepository().getUNICOREDataMovement(dataMovementId);
@@ -2083,7 +2087,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public GridFTPDataMovement getGridFTPDataMovement(String dataMovementId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GridFTPDataMovement gridFTPDataMovement =
new ComputeResourceRepository().getGridFTPDataMovement(dataMovementId);
@@ -2108,7 +2112,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean changeJobSubmissionPriority(String jobSubmissionInterfaceId, int newPriorityOrder)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return false;
}
@@ -2122,7 +2126,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean changeDataMovementPriority(String dataMovementInterfaceId, int newPriorityOrder)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return false;
}
@@ -2135,7 +2139,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean changeJobSubmissionPriorities(Map<String, Integer> jobSubmissionPriorityMap)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return false;
}
@@ -2148,7 +2152,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean changeDataMovementPriorities(Map<String, Integer> dataMovementPriorityMap)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
return false;
}
@@ -2162,7 +2166,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteJobSubmissionInterface(String computeResourceId, String jobSubmissionInterfaceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().removeJobSubmissionInterface(computeResourceId, jobSubmissionInterfaceId);
logger.debug("Airavata deleted job submission interface with interface id : " + jobSubmissionInterfaceId);
@@ -2177,7 +2181,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public ResourceJobManager getResourceJobManager(String resourceJobManagerId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return new ComputeResourceRepository().getResourceJobManager(resourceJobManagerId);
} catch (AppCatalogException e) {
@@ -2189,7 +2193,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public boolean deleteResourceJobManager(String resourceJobManagerId) throws RegistryServiceException, TException {
+ public boolean deleteResourceJobManager(String resourceJobManagerId) throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().deleteResourceJobManager(resourceJobManagerId);
return true;
@@ -2211,7 +2215,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteBatchQueue(String computeResourceId, String queueName)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().removeBatchQueue(computeResourceId, queueName);
return true;
@@ -2232,7 +2236,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public GatewayResourceProfile getGatewayResourceProfile(String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2258,7 +2262,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns a success/failure of the deletion.
*/
@Override
- public boolean deleteGatewayResourceProfile(String gatewayID) throws RegistryServiceException, TException {
+ public boolean deleteGatewayResourceProfile(String gatewayID) throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2286,7 +2290,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public ComputeResourcePreference getGatewayComputeResourcePreference(String gatewayID, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2336,7 +2340,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public StoragePreference getGatewayStoragePreference(String gatewayID, String storageId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2375,14 +2379,14 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<ComputeResourcePreference> getAllGatewayComputeResourcePreferences(String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
}
GwyResourceProfileRepository gwyResourceProfileRepository = new GwyResourceProfileRepository();
- return gwyResourceProfileRepository.getGatewayProfile(gatewayID).getComputeResourcePreferences();
+ return gwyResourceProfileRepository.getGatewayProfile(gatewayID).getComputeResourcePreferencesList();
} catch (Exception e) {
logger.error(gatewayID, "Error while reading gateway compute resource preferences...", e);
RegistryServiceException exception = new RegistryServiceException();
@@ -2401,14 +2405,14 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<StoragePreference> getAllGatewayStoragePreferences(String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
}
GwyResourceProfileRepository gwyResourceProfileRepository = new GwyResourceProfileRepository();
- return gwyResourceProfileRepository.getGatewayProfile(gatewayID).getStoragePreferences();
+ return gwyResourceProfileRepository.getGatewayProfile(gatewayID).getStoragePreferencesList();
} catch (Exception e) {
logger.error(gatewayID, "Error while reading gateway data storage preferences...", e);
RegistryServiceException exception = new RegistryServiceException();
@@ -2424,7 +2428,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns all the GatewayResourcePrifle list object.
*/
@Override
- public List<GatewayResourceProfile> getAllGatewayResourceProfiles() throws RegistryServiceException, TException {
+ public List<GatewayResourceProfile> getAllGatewayResourceProfiles() throws RegistryServiceException, Exception {
try {
GwyResourceProfileRepository gwyResourceProfileRepository = new GwyResourceProfileRepository();
return gwyResourceProfileRepository.getAllGatewayProfiles();
@@ -2445,7 +2449,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteGatewayComputeResourcePreference(String gatewayID, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2474,7 +2478,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteGatewayStoragePreference(String gatewayID, String storageId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2492,7 +2496,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public DataProductModel getDataProduct(String productUri) throws RegistryServiceException, TException {
+ public DataProductModel getDataProduct(String productUri) throws RegistryServiceException, Exception {
try {
DataProductModel dataProductModel = dataProductRepository.getDataProduct(productUri);
return dataProductModel;
@@ -2506,7 +2510,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public DataProductModel getParentDataProduct(String productUri) throws RegistryServiceException, TException {
+ public DataProductModel getParentDataProduct(String productUri) throws RegistryServiceException, Exception {
try {
DataProductModel dataProductModel = dataProductRepository.getParentDataProduct(productUri);
return dataProductModel;
@@ -2520,7 +2524,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<DataProductModel> getChildDataProducts(String productUri) throws RegistryServiceException, TException {
+ public List<DataProductModel> getChildDataProducts(String productUri) throws RegistryServiceException, Exception {
try {
List<DataProductModel> dataProductModels = dataProductRepository.getChildDataProducts(productUri);
return dataProductModels;
@@ -2536,7 +2540,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<DataProductModel> searchDataProductsByName(
String gatewayId, String userId, String productName, int limit, int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
List<DataProductModel> dataProductModels =
dataProductRepository.searchDataProductsByName(gatewayId, userId, productName, limit, offset);
@@ -2552,7 +2556,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String createGroupResourceProfile(GroupResourceProfile groupResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(groupResourceProfile.getGatewayId())) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2573,7 +2577,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void updateGroupResourceProfile(GroupResourceProfile groupResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
if (!groupResourceProfileRepository.isGroupResourceProfileExists(
@@ -2598,7 +2602,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public GroupResourceProfile getGroupResourceProfile(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
if (!groupResourceProfileRepository.isGroupResourceProfileExists(groupResourceProfileId)) {
@@ -2620,7 +2624,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean isGroupResourceProfileExists(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.isGroupResourceProfileExists(groupResourceProfileId);
@@ -2634,7 +2638,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean removeGroupResourceProfile(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
if (!groupResourceProfileRepository.isGroupResourceProfileExists(groupResourceProfileId)) {
@@ -2656,7 +2660,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<GroupResourceProfile> getGroupResourceList(String gatewayId, List<String> accessibleGroupResProfileIds)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.getAllGroupResourceProfiles(gatewayId, accessibleGroupResProfileIds);
@@ -2670,7 +2674,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean removeGroupComputePrefs(String computeResourceId, String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
groupResourceProfileRepository.removeGroupComputeResourcePreference(
@@ -2687,7 +2691,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean removeGroupComputeResourcePolicy(String resourcePolicyId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
groupResourceProfileRepository.removeComputeResourcePolicy(resourcePolicyId);
@@ -2703,7 +2707,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean removeGroupBatchQueueResourcePolicy(String resourcePolicyId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
groupResourceProfileRepository.removeBatchQueueResourcePolicy(resourcePolicyId);
@@ -2720,7 +2724,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public GroupComputeResourcePreference getGroupComputeResourcePreference(
- String computeResourceId, String groupResourceProfileId) throws RegistryServiceException, TException {
+ String computeResourceId, String groupResourceProfileId) throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
GroupComputeResourcePreference groupComputeResourcePreference =
@@ -2745,7 +2749,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean isGroupComputeResourcePreferenceExists(String computeResourceId, String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.isGroupComputeResourcePreferenceExists(
@@ -2761,7 +2765,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public ComputeResourcePolicy getGroupComputeResourcePolicy(String resourcePolicyId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
ComputeResourcePolicy computeResourcePolicy =
@@ -2783,7 +2787,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public BatchQueueResourcePolicy getBatchQueueResourcePolicy(String resourcePolicyId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
BatchQueueResourcePolicy batchQueueResourcePolicy =
@@ -2805,7 +2809,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<GroupComputeResourcePreference> getGroupComputeResourcePrefList(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.getAllGroupComputeResourcePreferences(groupResourceProfileId);
@@ -2821,7 +2825,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<BatchQueueResourcePolicy> getGroupBatchQueueResourcePolicyList(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.getAllGroupBatchQueueResourcePolicies(groupResourceProfileId);
@@ -2837,7 +2841,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ComputeResourcePolicy> getGroupComputeResourcePolicyList(String groupResourceProfileId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
GroupResourceProfileRepository groupResourceProfileRepository = new GroupResourceProfileRepository();
return groupResourceProfileRepository.getAllGroupComputeResourcePolicies(groupResourceProfileId);
@@ -2852,7 +2856,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String registerReplicaLocation(DataReplicaLocationModel replicaLocationModel)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
String replicaId = dataReplicaLocationRepository.registerReplicaLocation(replicaLocationModel);
return replicaId;
@@ -2871,7 +2875,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param dataProductModel
*/
@Override
- public String registerDataProduct(DataProductModel dataProductModel) throws RegistryServiceException, TException {
+ public String registerDataProduct(DataProductModel dataProductModel) throws RegistryServiceException, Exception {
try {
String productUrl = dataProductRepository.registerDataProduct(dataProductModel);
return productUrl;
@@ -2896,7 +2900,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateGatewayStoragePreference(
String gatewayID, String storageId, StoragePreference storagePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2904,7 +2908,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
GwyResourceProfileRepository gwyResourceProfileRepository = new GwyResourceProfileRepository();
GatewayResourceProfile profile = gwyResourceProfileRepository.getGatewayProfile(gatewayID);
- List<StoragePreference> dataStoragePreferences = profile.getStoragePreferences();
+ List<StoragePreference> dataStoragePreferences = profile.getStoragePreferencesList();
StoragePreference preferenceToRemove = null;
for (StoragePreference preference : dataStoragePreferences) {
if (preference.getStorageResourceId().equals(storageId)) {
@@ -2912,11 +2916,13 @@ public class RegistryServerHandler implements RegistryService.Iface {
break;
}
}
+ GatewayResourceProfile.Builder profileBuilder = profile.toBuilder();
if (preferenceToRemove != null) {
- profile.getStoragePreferences().remove(preferenceToRemove);
+ int idx = dataStoragePreferences.indexOf(preferenceToRemove);
+ if (idx >= 0) profileBuilder.removeStoragePreferences(idx);
}
- profile.getStoragePreferences().add(storagePreference);
- gwyResourceProfileRepository.updateGatewayResourceProfile(profile);
+ profileBuilder.addStoragePreferences(storagePreference);
+ gwyResourceProfileRepository.updateGatewayResourceProfile(profileBuilder.build());
logger.debug("Airavata updated storage resource preference with gateway id : " + gatewayID
+ " and for storage resource id : " + storageId);
return true;
@@ -2940,7 +2946,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateGatewayComputeResourcePreference(
String gatewayID, String computeResourceId, ComputeResourcePreference computeResourcePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2948,7 +2954,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
GwyResourceProfileRepository gwyResourceProfileRepository = new GwyResourceProfileRepository();
GatewayResourceProfile profile = gwyResourceProfileRepository.getGatewayProfile(gatewayID);
- List<ComputeResourcePreference> computeResourcePreferences = profile.getComputeResourcePreferences();
+ List<ComputeResourcePreference> computeResourcePreferences = profile.getComputeResourcePreferencesList();
ComputeResourcePreference preferenceToRemove = null;
for (ComputeResourcePreference preference : computeResourcePreferences) {
if (preference.getComputeResourceId().equals(computeResourceId)) {
@@ -2956,11 +2962,13 @@ public class RegistryServerHandler implements RegistryService.Iface {
break;
}
}
+ GatewayResourceProfile.Builder profileBuilder = profile.toBuilder();
if (preferenceToRemove != null) {
- profile.getComputeResourcePreferences().remove(preferenceToRemove);
+ int idx = computeResourcePreferences.indexOf(preferenceToRemove);
+ if (idx >= 0) profileBuilder.removeComputeResourcePreferences(idx);
}
- profile.getComputeResourcePreferences().add(computeResourcePreference);
- gwyResourceProfileRepository.updateGatewayResourceProfile(profile);
+ profileBuilder.addComputeResourcePreferences(computeResourcePreference);
+ gwyResourceProfileRepository.updateGatewayResourceProfile(profileBuilder.build());
logger.debug("Airavata updated compute resource preference with gateway id : " + gatewayID
+ " and for compute resource id : " + computeResourceId);
return true;
@@ -2986,7 +2994,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean addGatewayStoragePreference(
String gatewayID, String storageResourceId, StoragePreference dataStoragePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -2999,8 +3007,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
GatewayResourceProfile profile = gwyResourceProfileRepository.getGatewayProfile(gatewayID);
- dataStoragePreference.setStorageResourceId(storageResourceId);
- profile.addToStoragePreferences(dataStoragePreference);
+ dataStoragePreference = dataStoragePreference.toBuilder().setStorageResourceId(storageResourceId).build();
+ profile = profile.toBuilder().addStoragePreferences(dataStoragePreference).build();
gwyResourceProfileRepository.updateGatewayResourceProfile(profile);
logger.debug("Airavata added storage resource preference with gateway id : " + gatewayID
+ " and for storage resource id : " + storageResourceId);
@@ -3027,7 +3035,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean addGatewayComputeResourcePreference(
String gatewayID, String computeResourceId, ComputeResourcePreference computeResourcePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -3038,7 +3046,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
throw new RegistryServiceException("Gateway resource profile '" + gatewayID + "' does not exist!!!");
}
GatewayResourceProfile profile = gwyResourceProfileRepository.getGatewayProfile(gatewayID);
- profile.addToComputeResourcePreferences(computeResourcePreference);
+ profile = profile.toBuilder().addComputeResourcePreferences(computeResourcePreference).build();
gwyResourceProfileRepository.updateGatewayResourceProfile(profile);
logger.debug("Airavata added gateway compute resource preference with gateway id : " + gatewayID
+ " and for compute resource id : " + computeResourceId);
@@ -3062,7 +3070,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateGatewayResourceProfile(String gatewayID, GatewayResourceProfile gatewayResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isGatewayExistInternal(gatewayID)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
@@ -3091,7 +3099,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerGatewayResourceProfile(GatewayResourceProfile gatewayResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!validateString(gatewayResourceProfile.getGatewayID())) {
logger.error("Cannot create gateway profile with empty gateway id");
@@ -3118,7 +3126,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateResourceJobManager(String resourceJobManagerId, ResourceJobManager updatedResourceJobManager)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().updateResourceJobManager(resourceJobManagerId, updatedResourceJobManager);
return true;
@@ -3132,7 +3140,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String registerResourceJobManager(ResourceJobManager resourceJobManager)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return new ComputeResourceRepository().addResourceJobManager(resourceJobManager);
} catch (AppCatalogException e) {
@@ -3153,7 +3161,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteDataMovementInterface(String resourceId, String dataMovementInterfaceId, DMType dmType)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
switch (dmType) {
case COMPUTE_RESOURCE:
@@ -3191,7 +3199,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateGridFTPDataMovementDetails(
String dataMovementInterfaceId, GridFTPDataMovement gridFTPDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
throw new RegistryServiceException("updateGridFTPDataMovementDetails is not yet implemented");
}
@@ -3210,7 +3218,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addGridFTPDataMovementDetails(
String computeResourceId, DMType dmType, int priorityOrder, GridFTPDataMovement gridFTPDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String addDataMovementInterface = addDataMovementInterface(
@@ -3245,7 +3253,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateUnicoreDataMovementDetails(
String dataMovementInterfaceId, UnicoreDataMovement unicoreDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
throw new RegistryServiceException("updateUnicoreDataMovementDetails is not yet implemented");
}
@@ -3264,7 +3272,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addUnicoreDataMovementDetails(
String resourceId, DMType dmType, int priorityOrder, UnicoreDataMovement unicoreDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String movementInterface = addDataMovementInterface(
@@ -3296,7 +3304,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateSCPDataMovementDetails(String dataMovementInterfaceId, SCPDataMovement scpDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
computeResourceRepository.updateScpDataMovement(scpDataMovement);
logger.debug("Airavata updated SCP data movement with data movement id: " + dataMovementInterfaceId);
@@ -3329,7 +3337,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addSCPDataMovementDetails(
String resourceId, DMType dmType, int priorityOrder, SCPDataMovement scpDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String movementInterface = addDataMovementInterface(
@@ -3360,7 +3368,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateLocalDataMovementDetails(String dataMovementInterfaceId, LOCALDataMovement localDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
computeResourceRepository.updateLocalDataMovement(localDataMovement);
logger.debug("Airavata updated local data movement with data movement id: " + dataMovementInterfaceId);
@@ -3388,7 +3396,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addLocalDataMovementDetails(
String resourceId, DMType dataMoveType, int priorityOrder, LOCALDataMovement localDataMovement)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String movementInterface = addDataMovementInterface(
@@ -3420,7 +3428,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateUnicoreJobSubmissionDetails(
String jobSubmissionInterfaceId, UnicoreJobSubmission unicoreJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
throw new RegistryServiceException("updateUnicoreJobSubmissionDetails is not yet implemented");
}
@@ -3434,7 +3442,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateCloudJobSubmissionDetails(String jobSubmissionInterfaceId, CloudJobSubmission sshJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
computeResourceRepository.updateCloudJobSubmission(sshJobSubmission);
logger.debug("Airavata updated Cloud job submission for job submission interface id: "
@@ -3463,7 +3471,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateSSHJobSubmissionDetails(String jobSubmissionInterfaceId, SSHJobSubmission sshJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
computeResourceRepository.updateSSHJobSubmission(sshJobSubmission);
logger.debug(
@@ -3508,7 +3516,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addCloudJobSubmissionDetails(
String computeResourceId, int priorityOrder, CloudJobSubmission cloudSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String submissionInterface = addJobSubmissionInterface(
@@ -3545,7 +3553,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addUNICOREJobSubmissionDetails(
String computeResourceId, int priorityOrder, UnicoreJobSubmission unicoreJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String submissionInterface = addJobSubmissionInterface(
@@ -3579,7 +3587,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addSSHForkJobSubmissionDetails(
String computeResourceId, int priorityOrder, SSHJobSubmission sshJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String submissionDetails = addJobSubmissionInterface(
@@ -3616,7 +3624,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addSSHJobSubmissionDetails(
String computeResourceId, int priorityOrder, SSHJobSubmission sshJobSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String submissionInterface = addJobSubmissionInterface(
@@ -3650,7 +3658,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateLocalSubmissionDetails(String jobSubmissionInterfaceId, LOCALSubmission localSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
computeResourceRepository.updateLocalJobSubmission(localSubmission);
logger.debug("Airavata updated local job submission for job submission interface id: "
@@ -3682,7 +3690,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addLocalSubmissionDetails(
String computeResourceId, int priorityOrder, LOCALSubmission localSubmission)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ComputeResourceRepository computeResourceRepository = new ComputeResourceRepository();
String submissionInterface = addJobSubmissionInterface(
@@ -3717,7 +3725,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateStorageResource(
String storageResourceId, StorageResourceDescription storageResourceDescription)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
storageResourceRepository.updateStorageResource(storageResourceId, storageResourceDescription);
logger.debug("Airavata updated storage resource with storage resource Id : " + storageResourceId);
@@ -3739,7 +3747,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerStorageResource(StorageResourceDescription storageResourceDescription)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
String storageResource = storageResourceRepository.addStorageResource(storageResourceDescription);
logger.debug("Airavata registered storage resource with storage resource Id : " + storageResource);
@@ -3763,7 +3771,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateComputeResource(
String computeResourceId, ComputeResourceDescription computeResourceDescription)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
new ComputeResourceRepository().updateComputeResource(computeResourceId, computeResourceDescription);
logger.debug("Airavata updated compute resource with compute resource Id : " + computeResourceId);
@@ -3785,7 +3793,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerComputeResource(ComputeResourceDescription computeResourceDescription)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
String computeResource = new ComputeResourceRepository().addComputeResource(computeResourceDescription);
logger.debug("Airavata registered compute resource with compute resource Id : " + computeResource);
@@ -3809,7 +3817,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateApplicationInterface(
String appInterfaceId, ApplicationInterfaceDescription applicationInterface)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
applicationInterfaceRepository.updateApplicationInterface(appInterfaceId, applicationInterface);
logger.debug("Airavata updated application interface with interface id : " + appInterfaceId);
@@ -3832,7 +3840,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerApplicationInterface(String gatewayId, ApplicationInterfaceDescription applicationInterface)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -3861,7 +3869,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateApplicationDeployment(
String appDeploymentId, ApplicationDeploymentDescription applicationDeployment)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
applicationDeploymentRepository.updateApplicationDeployment(appDeploymentId, applicationDeployment);
logger.debug("Airavata updated application deployment for deployment id : " + appDeploymentId);
@@ -3885,7 +3893,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String registerApplicationDeployment(
String gatewayId, ApplicationDeploymentDescription applicationDeployment)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -3913,7 +3921,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateApplicationModule(String appModuleId, ApplicationModule applicationModule)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
applicationInterfaceRepository.updateApplicationModule(appModuleId, applicationModule);
logger.debug("Airavata updated application module with module id: " + appModuleId);
@@ -3937,7 +3945,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerApplicationModule(String gatewayId, ApplicationModule applicationModule)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!isGatewayExistInternal(gatewayId)) {
logger.error("Gateway does not exist.Please provide a valid gateway id...");
throw new RegistryServiceException("Gateway does not exist.Please provide a valid gateway id...");
@@ -3957,7 +3965,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void updateResourceScheduleing(
String airavataExperimentId, ComputationalResourceSchedulingModel resourceScheduling)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.debug(
@@ -4010,7 +4018,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void updateExperimentConfiguration(String airavataExperimentId, UserConfigurationDataModel userConfiguration)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -4088,7 +4096,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public void updateExperiment(String airavataExperimentId, ExperimentModel experiment)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -4119,7 +4127,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
.getResourceHostId();
ComputeResourceDescription computeResourceDescription =
new ComputeResourceRepository().getComputeResource(compResourceId);
- if (!computeResourceDescription.isEnabled()) {
+ if (!computeResourceDescription.getEnabled()) {
logger.error("Compute Resource is not enabled by the Admin!");
AiravataSystemException exception = new AiravataSystemException();
exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
@@ -4207,7 +4215,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String createExperiment(String gatewayId, ExperimentModel experiment)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!validateString(experiment.getExperimentName())) {
logger.error("Cannot create experiments with empty experiment name");
@@ -4236,7 +4244,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
.getResourceHostId();
ComputeResourceDescription computeResourceDescription =
new ComputeResourceRepository().getComputeResource(compResourceId);
- if (!computeResourceDescription.isEnabled()) {
+ if (!computeResourceDescription.getEnabled()) {
logger.error("Compute Resource is not enabled by the Admin!");
AiravataSystemException exception = new AiravataSystemException();
exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
@@ -4251,7 +4259,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
experiment.getUserConfigurationData().getAutoScheduledCompResourceSchedulingList()) {
ComputeResourceDescription computeResourceDescription = new ComputeResourceRepository()
.getComputeResource(computationalResourceScheduling.getResourceHostId());
- if (!computeResourceDescription.isEnabled()) {
+ if (!computeResourceDescription.getEnabled()) {
logger.error("Compute Resource with id" + computationalResourceScheduling.getResourceHostId()
+ "" + " is not enabled by the Admin!");
AiravataSystemException exception = new AiravataSystemException();
@@ -4300,7 +4308,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
Map<ExperimentSearchFields, String> filters,
int limit,
int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!validateString(userName)) {
logger.error("Username cannot be empty. Please provide a valid user..");
AiravataSystemException exception = new AiravataSystemException();
@@ -4386,7 +4394,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
Map<ProjectSearchFields, String> filters,
int limit,
int offset)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
if (!validateString(userName)) {
logger.error("Username cannot be empty. Please provide a valid user..");
AiravataSystemException exception = new AiravataSystemException();
@@ -4449,7 +4457,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Currently this does not return any value.
*/
@Override
- public void updateProject(String projectId, Project updatedProject) throws RegistryServiceException, TException {
+ public void updateProject(String projectId, Project updatedProject) throws RegistryServiceException, Exception {
if (!validateString(projectId) || !validateString(projectId)) {
logger.error("Project id cannot be empty...");
AiravataSystemException exception = new AiravataSystemException();
@@ -4483,7 +4491,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param project
*/
@Override
- public String createProject(String gatewayId, Project project) throws RegistryServiceException, TException {
+ public String createProject(String gatewayId, Project project) throws RegistryServiceException, Exception {
try {
if (!validateString(project.getName()) || !validateString(project.getOwner())) {
logger.error("Project name and owner cannot be empty...");
@@ -4508,7 +4516,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public boolean updateNotification(Notification notification) throws RegistryServiceException, TException {
+ public boolean updateNotification(Notification notification) throws RegistryServiceException, Exception {
try {
notificationRepository.updateNotification(notification);
return true;
@@ -4527,7 +4535,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @param notification
*/
@Override
- public String createNotification(Notification notification) throws RegistryServiceException, TException {
+ public String createNotification(Notification notification) throws RegistryServiceException, Exception {
try {
return notificationRepository.createNotification(notification);
} catch (RegistryException e) {
@@ -4548,7 +4556,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* @throws AiravataClientException
*/
@Override
- public boolean updateGateway(String gatewayId, Gateway updatedGateway) throws RegistryServiceException, TException {
+ public boolean updateGateway(String gatewayId, Gateway updatedGateway) throws RegistryServiceException, Exception {
try {
if (!gatewayRepository.isGatewayExist(gatewayId)) {
logger.error("Gateway does not exist in the system. Please provide a valid gateway ID...");
@@ -4593,7 +4601,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Th unique identifier of the newly registered gateway.
*/
@Override
- public String addGateway(Gateway gateway) throws RegistryServiceException, DuplicateEntryException, TException {
+ public String addGateway(Gateway gateway) throws RegistryServiceException, DuplicateEntryException, Exception {
try {
if (!validateString(gateway.getGatewayId())) {
logger.error("Gateway id cannot be empty...");
@@ -4660,7 +4668,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
/*This private method wraps the logic of getExperiment method as this method is called internally in the API.*/
private ExperimentModel getExperimentInternal(String airavataExperimentId)
throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException,
- AiravataSystemException, TException {
+ AiravataSystemException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
throw new ExperimentNotFoundException(
@@ -4678,7 +4686,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
/*Private method wraps the logic of getExperimentStatus method since this method is called internally.*/
private ExperimentStatus getExperimentStatusInternal(String airavataExperimentId)
throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException,
- AiravataSystemException, TException {
+ AiravataSystemException, Exception {
try {
if (!experimentRepository.isExperimentExist(airavataExperimentId)) {
logger.error(
@@ -4700,7 +4708,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
/*This private method wraps the logic of getApplicationOutputs method as this method is called internally in the API.*/
private List<OutputDataObjectType> getApplicationOutputsInternal(String appInterfaceId)
- throws InvalidRequestException, AiravataClientException, AiravataSystemException, TException {
+ throws InvalidRequestException, AiravataClientException, AiravataSystemException, Exception {
try {
List<OutputDataObjectType> applicationOutputs =
applicationInterfaceRepository.getApplicationOutputs(appInterfaceId);
@@ -4761,7 +4769,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public String registerUserResourceProfile(UserResourceProfile userResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!validateString(userResourceProfile.getUserId())) {
logger.error("Cannot create user resource profile with empty user id");
@@ -4799,7 +4807,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean isUserResourceProfileExists(String userId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayId, userId)) {
logger.error("user does not exist.Please provide a valid gateway id...");
@@ -4829,7 +4837,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public UserResourceProfile getUserResourceProfile(String userId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayId, userId)) {
logger.error("user does not exist.Please provide a valid gateway id...");
@@ -4862,7 +4870,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean updateUserResourceProfile(String userId, String gatewayID, UserResourceProfile userResourceProfile)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("User does not exist.Please provide a valid user id...");
@@ -4894,7 +4902,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteUserResourceProfile(String userId, String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -4918,7 +4926,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public String addUser(UserProfile userProfile)
- throws RegistryServiceException, DuplicateEntryException, TException {
+ throws RegistryServiceException, DuplicateEntryException, Exception {
try {
logger.info("Adding User in Registry: " + userProfile);
if (isUserExists(userProfile.getGatewayId(), userProfile.getUserId())) {
@@ -4952,7 +4960,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
String gatewayID,
String computeResourceId,
UserComputeResourcePreference userComputeResourcePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -4964,7 +4972,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
UserResourceProfile profile = userResourceProfileRepository.getUserResourceProfile(userId, gatewayID);
// gatewayProfile.removeGatewayResourceProfile(gatewayID);
- profile.addToUserComputeResourcePreferences(userComputeResourcePreference);
+ profile = profile.toBuilder().addUserComputeResourcePreferences(userComputeResourcePreference).build();
userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profile);
logger.debug("Airavata added User compute resource preference with gateway id : " + gatewayID
+ " and for compute resource id : " + computeResourceId);
@@ -4994,7 +5002,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean isUserComputeResourcePreferenceExists(String userId, String gatewayID, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (userRepository.isUserExists(gatewayID, userId)
&& userResourceProfileRepository.isUserResourceProfileExists(userId, gatewayID)) {
@@ -5028,7 +5036,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean addUserStoragePreference(
String userId, String gatewayID, String storageResourceId, UserStoragePreference dataStoragePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5040,8 +5048,8 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
UserResourceProfile profile = userResourceProfileRepository.getUserResourceProfile(userId, gatewayID);
// gatewayProfile.removeGatewayResourceProfile(gatewayID);
- dataStoragePreference.setStorageResourceId(storageResourceId);
- profile.addToUserStoragePreferences(dataStoragePreference);
+ dataStoragePreference = dataStoragePreference.toBuilder().setStorageResourceId(storageResourceId).build();
+ profile = profile.toBuilder().addUserStoragePreferences(dataStoragePreference).build();
userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profile);
logger.debug("Airavata added storage resource preference with gateway id : " + gatewayID
+ " and for storage resource id : " + storageResourceId);
@@ -5071,7 +5079,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public UserComputeResourcePreference getUserComputeResourcePreference(
- String userId, String gatewayID, String userComputeResourceId) throws RegistryServiceException, TException {
+ String userId, String gatewayID, String userComputeResourceId) throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5121,7 +5129,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public UserStoragePreference getUserStoragePreference(String userId, String gatewayID, String storageId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5157,7 +5165,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* Returns all the UserResourceProfile list object.
*/
@Override
- public List<UserResourceProfile> getAllUserResourceProfiles() throws RegistryServiceException, TException {
+ public List<UserResourceProfile> getAllUserResourceProfiles() throws RegistryServiceException, Exception {
try {
return userResourceProfileRepository.getAllUserResourceProfiles();
} catch (AppCatalogException e) {
@@ -5183,7 +5191,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
String gatewayID,
String computeResourceId,
UserComputeResourcePreference userComputeResourcePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5191,7 +5199,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
UserResourceProfile profile = userResourceProfileRepository.getUserResourceProfile(userId, gatewayID);
List<UserComputeResourcePreference> userComputeResourcePreferences =
- profile.getUserComputeResourcePreferences();
+ profile.getUserComputeResourcePreferencesList();
UserComputeResourcePreference preferenceToRemove = null;
for (UserComputeResourcePreference preference : userComputeResourcePreferences) {
if (preference.getComputeResourceId().equals(computeResourceId)) {
@@ -5199,11 +5207,13 @@ public class RegistryServerHandler implements RegistryService.Iface {
break;
}
}
+ UserResourceProfile.Builder profileBuilder = profile.toBuilder();
if (preferenceToRemove != null) {
- profile.getUserComputeResourcePreferences().remove(preferenceToRemove);
+ int idx = userComputeResourcePreferences.indexOf(preferenceToRemove);
+ if (idx >= 0) profileBuilder.removeUserComputeResourcePreferences(idx);
}
- profile.getUserComputeResourcePreferences().add(userComputeResourcePreference);
- userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profile);
+ profileBuilder.addUserComputeResourcePreferences(userComputeResourcePreference);
+ userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profileBuilder.build());
logger.debug("Airavata updated compute resource preference with gateway id : " + gatewayID
+ " and for compute resource id : " + computeResourceId);
return true;
@@ -5234,14 +5244,14 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean updateUserStoragePreference(
String userId, String gatewayID, String storageId, UserStoragePreference userStoragePreference)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
throw new RegistryServiceException("user does not exist.Please provide a valid user id...");
}
UserResourceProfile profile = userResourceProfileRepository.getUserResourceProfile(userId, gatewayID);
- List<UserStoragePreference> dataStoragePreferences = profile.getUserStoragePreferences();
+ List<UserStoragePreference> dataStoragePreferences = profile.getUserStoragePreferencesList();
UserStoragePreference preferenceToRemove = null;
for (UserStoragePreference preference : dataStoragePreferences) {
if (preference.getStorageResourceId().equals(storageId)) {
@@ -5249,11 +5259,13 @@ public class RegistryServerHandler implements RegistryService.Iface {
break;
}
}
+ UserResourceProfile.Builder profileBuilder = profile.toBuilder();
if (preferenceToRemove != null) {
- profile.getUserStoragePreferences().remove(preferenceToRemove);
+ int idx = dataStoragePreferences.indexOf(preferenceToRemove);
+ if (idx >= 0) profileBuilder.removeUserStoragePreferences(idx);
}
- profile.getUserStoragePreferences().add(userStoragePreference);
- userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profile);
+ profileBuilder.addUserStoragePreferences(userStoragePreference);
+ userResourceProfileRepository.updateUserResourceProfile(userId, gatewayID, profileBuilder.build());
logger.debug("Airavata updated user storage resource preference with gateway id : " + gatewayID
+ " and for storage resource id : " + storageId);
return true;
@@ -5281,7 +5293,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteUserComputeResourcePreference(String userId, String gatewayID, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5314,7 +5326,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public boolean deleteUserStoragePreference(String userId, String gatewayID, String storageId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!userRepository.isUserExists(gatewayID, userId)) {
logger.error("user does not exist.Please provide a valid user id...");
@@ -5340,7 +5352,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
* *
*/
@Override
- public List<QueueStatusModel> getLatestQueueStatuses() throws RegistryServiceException, TException {
+ public List<QueueStatusModel> getLatestQueueStatuses() throws RegistryServiceException, Exception {
try {
List<QueueStatusModel> queueStatusModels = queueStatusRepository.getLatestQueueStatuses();
return queueStatusModels;
@@ -5354,7 +5366,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void registerQueueStatuses(List<QueueStatusModel> queueStatuses)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
queueStatusRepository.createQueueStatuses(queueStatuses);
} catch (RegistryException e) {
@@ -5367,7 +5379,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public QueueStatusModel getQueueStatus(String hostName, String queueName)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
Optional<QueueStatusModel> optionalQueueStatusModel =
queueStatusRepository.getQueueStatus(hostName, queueName);
@@ -5375,14 +5387,14 @@ public class RegistryServerHandler implements RegistryService.Iface {
if (optionalQueueStatusModel.isPresent()) {
return optionalQueueStatusModel.get();
} else {
- QueueStatusModel queueStatusModel = new QueueStatusModel();
- queueStatusModel.setHostName(hostName);
- queueStatusModel.setQueueName(queueName);
- queueStatusModel.setQueueUp(false);
- queueStatusModel.setRunningJobs(0);
- queueStatusModel.setQueuedJobs(0);
- queueStatusModel.setTime(0);
- return queueStatusModel;
+ return QueueStatusModel.newBuilder()
+ .setHostName(hostName)
+ .setQueueName(queueName)
+ .setQueueUp(false)
+ .setRunningJobs(0)
+ .setQueuedJobs(0)
+ .setTime(0)
+ .build();
}
} catch (RegistryException e) {
logger.error("Error while storing queue status models....", e);
@@ -5402,7 +5414,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<UserComputeResourcePreference> getAllUserComputeResourcePreferences(String userId, String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isUserExists(gatewayID, userId)) {
logger.error("User Resource Profile does not exist.Please provide a valid gateway id...");
@@ -5411,7 +5423,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
return userResourceProfileRepository
.getUserResourceProfile(userId, gatewayID)
- .getUserComputeResourcePreferences();
+ .getUserComputeResourcePreferencesList();
} catch (AppCatalogException e) {
logger.error(userId, "Error while reading User Resource Profile compute resource preferences...", e);
RegistryServiceException exception = new RegistryServiceException();
@@ -5431,7 +5443,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
*/
@Override
public List<UserStoragePreference> getAllUserStoragePreferences(String userId, String gatewayID)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!isUserExists(gatewayID, userId)) {
logger.error("User does not exist.Please provide a valid gateway id...");
@@ -5439,7 +5451,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
return userResourceProfileRepository
.getUserResourceProfile(userId, gatewayID)
- .getUserStoragePreferences();
+ .getUserStoragePreferencesList();
} catch (AppCatalogException e) {
logger.error(userId, "Error while reading user resource Profile data storage preferences...", e);
RegistryServiceException exception = new RegistryServiceException();
@@ -5451,7 +5463,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void createGatewayGroups(GatewayGroups gatewayGroups)
- throws RegistryServiceException, DuplicateEntryException, TException {
+ throws RegistryServiceException, DuplicateEntryException, Exception {
try {
if (gatewayGroupsRepository.isExists(gatewayGroups.getGatewayId())) {
logger.error("GatewayGroups already exists for " + gatewayGroups.getGatewayId());
@@ -5473,7 +5485,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void updateGatewayGroups(GatewayGroups gatewayGroups) throws RegistryServiceException, TException {
+ public void updateGatewayGroups(GatewayGroups gatewayGroups) throws RegistryServiceException, Exception {
try {
if (!gatewayGroupsRepository.isExists(gatewayGroups.getGatewayId())) {
final String message = "No GatewayGroups entry exists for " + gatewayGroups.getGatewayId();
@@ -5495,7 +5507,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public boolean isGatewayGroupsExists(String gatewayId) throws RegistryServiceException, TException {
+ public boolean isGatewayGroupsExists(String gatewayId) throws RegistryServiceException, Exception {
try {
return gatewayGroupsRepository.isExists(gatewayId);
} catch (Exception e) {
@@ -5508,7 +5520,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public GatewayGroups getGatewayGroups(String gatewayId) throws RegistryServiceException, TException {
+ public GatewayGroups getGatewayGroups(String gatewayId) throws RegistryServiceException, Exception {
try {
if (!gatewayGroupsRepository.isExists(gatewayId)) {
final String message = "No GatewayGroups entry exists for " + gatewayId;
@@ -5529,7 +5541,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public Parser getParser(String parserId, String gatewayId) throws RegistryServiceException, TException {
+ public Parser getParser(String parserId, String gatewayId) throws RegistryServiceException, Exception {
try {
if (!parserRepository.isExists(parserId)) {
@@ -5552,7 +5564,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public String saveParser(Parser parser) throws RegistryServiceException, TException {
+ public String saveParser(Parser parser) throws RegistryServiceException, Exception {
try {
Parser created = parserRepository.saveParser(parser);
@@ -5568,7 +5580,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<Parser> listAllParsers(String gatewayId) throws RegistryServiceException, TException {
+ public List<Parser> listAllParsers(String gatewayId) throws RegistryServiceException, Exception {
try {
return parserRepository.getAllParsers(gatewayId);
@@ -5583,7 +5595,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void removeParser(String parserId, String gatewayId) throws RegistryServiceException, TException {
+ public void removeParser(String parserId, String gatewayId) throws RegistryServiceException, Exception {
try {
boolean exists = parserRepository.isExists(parserId);
@@ -5607,7 +5619,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public ParserInput getParserInput(String parserInputId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ParserInput parserInput = parserInputRepository.getParserInput(parserInputId);
// TODO check the gateway
@@ -5622,7 +5634,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public ParserOutput getParserOutput(String parserOutputId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
ParserOutput parserOutput = parserOutputRepository.getParserOutput(parserOutputId);
// TODO check the gateway
@@ -5637,7 +5649,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public ParsingTemplate getParsingTemplate(String templateId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (!parsingTemplateRepository.isExists(templateId)) {
@@ -5661,10 +5673,10 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public List<ParsingTemplate> getParsingTemplatesForExperiment(String experimentId, String gatewayId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
- List<ProcessModel> processes = getExperiment(experimentId).getProcesses();
+ List<ProcessModel> processes = getExperiment(experimentId).getProcessesList();
if (processes.size() > 0) {
return parsingTemplateRepository.getParsingTemplatesForApplication(
processes.get(processes.size() - 1).getApplicationInterfaceId());
@@ -5681,7 +5693,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public String saveParsingTemplate(ParsingTemplate parsingTemplate) throws RegistryServiceException, TException {
+ public String saveParsingTemplate(ParsingTemplate parsingTemplate) throws RegistryServiceException, Exception {
try {
ParsingTemplate saved = parsingTemplateRepository.create(parsingTemplate);
@@ -5697,7 +5709,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public List<ParsingTemplate> listAllParsingTemplates(String gatewayId) throws RegistryServiceException, TException {
+ public List<ParsingTemplate> listAllParsingTemplates(String gatewayId) throws RegistryServiceException, Exception {
try {
return parsingTemplateRepository.getAllParsingTemplates(gatewayId);
@@ -5712,7 +5724,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
}
@Override
- public void removeParsingTemplate(String templateId, String gatewayId) throws RegistryServiceException, TException {
+ public void removeParsingTemplate(String templateId, String gatewayId) throws RegistryServiceException, Exception {
try {
boolean exists = parsingTemplateRepository.isExists(templateId);
@@ -5739,7 +5751,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public boolean isGatewayUsageReportingAvailable(String gatewayId, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
return usageReportingCommandRepository.isGatewayUsageReportingCommandExists(gatewayId, computeResourceId);
} catch (Exception e) {
@@ -5754,7 +5766,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public GatewayUsageReportingCommand getGatewayReportingCommand(String gatewayId, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
if (usageReportingCommandRepository.isGatewayUsageReportingCommandExists(gatewayId, computeResourceId)) {
return usageReportingCommandRepository.getGatewayUsageReportingCommand(gatewayId, computeResourceId);
@@ -5779,7 +5791,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void addGatewayUsageReportingCommand(GatewayUsageReportingCommand command)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
usageReportingCommandRepository.addGatewayUsageReportingCommand(command);
} catch (Exception e) {
@@ -5794,7 +5806,7 @@ public class RegistryServerHandler implements RegistryService.Iface {
@Override
public void removeGatewayUsageReportingCommand(String gatewayId, String computeResourceId)
- throws RegistryServiceException, TException {
+ throws RegistryServiceException, Exception {
try {
usageReportingCommandRepository.removeGatewayUsageReportingCommand(gatewayId, computeResourceId);
} catch (Exception e) {
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventHandler.java b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventHandler.java
index 217bc9da07..b51113b804 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventHandler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventHandler.java
@@ -27,16 +27,16 @@ import org.apache.airavata.messaging.service.MessageContext;
import org.apache.airavata.messaging.service.MessageHandler;
import org.apache.airavata.messaging.util.DBEventPublisherUtils;
import org.apache.airavata.messaging.util.DBEventService;
-import org.apache.airavata.model.dbevent.CrudType;
-import org.apache.airavata.model.dbevent.DBEventMessage;
-import org.apache.airavata.model.dbevent.DBEventPublisherContext;
-import org.apache.airavata.model.dbevent.EntityType;
-import org.apache.airavata.model.error.DuplicateEntryException;
-import org.apache.airavata.model.user.UserProfile;
-import org.apache.airavata.model.workspace.Gateway;
-import org.apache.airavata.model.workspace.Project;
+import org.apache.airavata.model.dbevent.proto.CrudType;
+import org.apache.airavata.model.dbevent.proto.DBEventMessage;
+import org.apache.airavata.model.dbevent.proto.DBEventPublisherContext;
+import org.apache.airavata.model.dbevent.proto.EntityType;
+import org.apache.airavata.model.error.proto.DuplicateEntryException;
+import org.apache.airavata.model.user.proto.UserProfile;
+import org.apache.airavata.model.workspace.proto.Gateway;
+import org.apache.airavata.model.workspace.proto.Project;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -180,7 +180,7 @@ public class RegistryServiceDBEventHandler implements MessageHandler {
logger.info("RegistryServiceDBEventHandler | Sending ack. Message Delivery Tag: "
+ messageContext.getDeliveryTag());
RegistryServiceDBEventMessagingFactory.getDBEventSubscriber().sendAck(messageContext.getDeliveryTag());
- } catch (TException ex) {
+ } catch (Exception ex) {
logger.error("Error processing message: " + ex, ex);
} catch (ApplicationSettingsException ex) {
logger.error("Error fetching application settings: " + ex, ex);
@@ -193,19 +193,20 @@ public class RegistryServiceDBEventHandler implements MessageHandler {
}
private Project createDefaultProject(RegistryService.Iface registryClient, UserProfile userProfile)
- throws TException {
+ throws Exception {
// Just retrieve the first project to see if the user has any projects
List<Project> projects =
registryClient.getUserProjects(userProfile.getGatewayId(), userProfile.getUserId(), 1, 0);
if (projects.isEmpty()) {
- Project defaultProject = new Project();
- defaultProject.setOwner(userProfile.getUserId());
- defaultProject.setName("Default Project");
- defaultProject.setGatewayId(userProfile.getGatewayId());
- defaultProject.setDescription("This is the default project for user " + userProfile.getUserId());
+ Project defaultProject = Project.newBuilder()
+ .setOwner(userProfile.getUserId())
+ .setName("Default Project")
+ .setGatewayId(userProfile.getGatewayId())
+ .setDescription("This is the default project for user " + userProfile.getUserId())
+ .build();
String defaultProjectId = registryClient.createProject(userProfile.getGatewayId(), defaultProject);
logger.info("Default project created for user {}", userProfile.getUserId());
- defaultProject.setProjectID(defaultProjectId);
+ defaultProject = defaultProject.toBuilder().setProjectID(defaultProjectId).build();
return defaultProject;
}
return null;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventMessagingFactory.java b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventMessagingFactory.java
index d64fe5f71b..b9e51dac46 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventMessagingFactory.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/handler/RegistryServiceDBEventMessagingFactory.java
@@ -27,11 +27,11 @@ import org.apache.airavata.messaging.service.Publisher;
import org.apache.airavata.messaging.service.Subscriber;
import org.apache.airavata.messaging.util.DBEventManagerConstants;
import org.apache.airavata.messaging.util.DBEventService;
-import org.apache.airavata.model.dbevent.DBEventMessage;
-import org.apache.airavata.model.dbevent.DBEventMessageContext;
-import org.apache.airavata.model.dbevent.DBEventSubscriber;
-import org.apache.airavata.model.dbevent.DBEventType;
-import org.apache.airavata.model.messaging.event.MessageType;
+import org.apache.airavata.model.dbevent.proto.DBEventMessage;
+import org.apache.airavata.model.dbevent.proto.DBEventMessageContext;
+import org.apache.airavata.model.dbevent.proto.DBEventSubscriber;
+import org.apache.airavata.model.dbevent.proto.DBEventType;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
import org.apache.airavata.registry.api.exception.RegistryServiceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java b/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
index 961a054849..e2a898093d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/mapper/ExecutionMapper.java
@@ -24,28 +24,28 @@ import java.util.Arrays;
import java.util.List;
import org.apache.airavata.execution.model.*;
import org.apache.airavata.execution.model.workflow.AiravataWorkflowEntity;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.ExperimentSummaryModel;
-import org.apache.airavata.model.experiment.UserConfigurationDataModel;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.process.ProcessWorkflow;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ExperimentStatus;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.status.QueueStatusModel;
-import org.apache.airavata.model.status.TaskStatus;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.user.UserProfile;
-import org.apache.airavata.model.workflow.AiravataWorkflow;
-import org.apache.airavata.model.workspace.Gateway;
-import org.apache.airavata.model.workspace.GatewayUsageReportingCommand;
-import org.apache.airavata.model.workspace.Notification;
-import org.apache.airavata.model.workspace.Project;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.experiment.proto.ExperimentSummaryModel;
+import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.process.proto.ProcessWorkflow;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.status.proto.ExperimentStatus;
+import org.apache.airavata.model.status.proto.JobStatus;
+import org.apache.airavata.model.status.proto.ProcessStatus;
+import org.apache.airavata.model.status.proto.QueueStatusModel;
+import org.apache.airavata.model.status.proto.TaskStatus;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.user.proto.UserProfile;
+import org.apache.airavata.model.workflow.proto.AiravataWorkflow;
+import org.apache.airavata.model.workspace.proto.Gateway;
+import org.apache.airavata.model.workspace.proto.GatewayUsageReportingCommand;
+import org.apache.airavata.model.workspace.proto.Notification;
+import org.apache.airavata.model.workspace.proto.Project;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.ReportingPolicy;
@@ -189,36 +189,36 @@ public interface ExecutionMapper {
*/
default UserConfigurationDataModel userConfigDataToModel(UserConfigurationDataEntity entity) {
if (entity == null) return null;
- UserConfigurationDataModel model = new UserConfigurationDataModel();
- model.setAiravataAutoSchedule(entity.isAiravataAutoSchedule());
- model.setOverrideManualScheduledParams(entity.isOverrideManualScheduledParams());
- model.setShareExperimentPublicly(entity.isShareExperimentPublicly());
- model.setThrottleResources(entity.isThrottleResources());
- model.setUserDN(entity.getUserDN());
- model.setGenerateCert(entity.isGenerateCert());
- model.setExperimentDataDir(entity.getExperimentDataDir());
- model.setGroupResourceProfileId(entity.getGroupResourceProfileId());
- model.setUseUserCRPref(entity.isUseUserCRPref());
// Map flattened scheduling fields into nested ComputationalResourceSchedulingModel
- ComputationalResourceSchedulingModel scheduling = new ComputationalResourceSchedulingModel();
- scheduling.setResourceHostId(entity.getResourceHostId());
- scheduling.setTotalCPUCount(entity.getTotalCPUCount());
- scheduling.setNodeCount(entity.getNodeCount());
- scheduling.setNumberOfThreads(entity.getNumberOfThreads());
- scheduling.setQueueName(entity.getQueueName());
- scheduling.setWallTimeLimit(entity.getWallTimeLimit());
- scheduling.setTotalPhysicalMemory(entity.getTotalPhysicalMemory());
- scheduling.setStaticWorkingDir(entity.getStaticWorkingDir());
- scheduling.setOverrideLoginUserName(entity.getOverrideLoginUserName());
- scheduling.setOverrideScratchLocation(entity.getOverrideScratchLocation());
- scheduling.setOverrideAllocationProjectNumber(entity.getOverrideAllocationProjectNumber());
- model.setComputationalResourceScheduling(scheduling);
-
- model.setInputStorageResourceId(entity.getInputStorageResourceId());
- model.setOutputStorageResourceId(entity.getOutputStorageResourceId());
-
- return model;
+ ComputationalResourceSchedulingModel scheduling = ComputationalResourceSchedulingModel.newBuilder()
+ .setResourceHostId(entity.getResourceHostId())
+ .setTotalCPUCount(entity.getTotalCPUCount())
+ .setNodeCount(entity.getNodeCount())
+ .setNumberOfThreads(entity.getNumberOfThreads())
+ .setQueueName(entity.getQueueName())
+ .setWallTimeLimit(entity.getWallTimeLimit())
+ .setTotalPhysicalMemory(entity.getTotalPhysicalMemory())
+ .setStaticWorkingDir(entity.getStaticWorkingDir())
+ .setOverrideLoginUserName(entity.getOverrideLoginUserName())
+ .setOverrideScratchLocation(entity.getOverrideScratchLocation())
+ .setOverrideAllocationProjectNumber(entity.getOverrideAllocationProjectNumber())
+ .build();
+
+ return UserConfigurationDataModel.newBuilder()
+ .setAiravataAutoSchedule(entity.getAiravataAutoSchedule())
+ .setOverrideManualScheduledParams(entity.getOverrideManualScheduledParams())
+ .setShareExperimentPublicly(entity.getShareExperimentPublicly())
+ .setThrottleResources(entity.getThrottleResources())
+ .setUserDN(entity.getUserDN())
+ .setGenerateCert(entity.getGenerateCert())
+ .setExperimentDataDir(entity.getExperimentDataDir())
+ .setGroupResourceProfileId(entity.getGroupResourceProfileId())
+ .setUseUserCRPref(entity.getUseUserCRPref())
+ .setComputationalResourceScheduling(scheduling)
+ .setInputStorageResourceId(entity.getInputStorageResourceId())
+ .setOutputStorageResourceId(entity.getOutputStorageResourceId())
+ .build();
}
/**
@@ -227,21 +227,21 @@ public interface ExecutionMapper {
default UserConfigurationDataEntity userConfigDataToEntity(UserConfigurationDataModel model) {
if (model == null) return null;
UserConfigurationDataEntity entity = new UserConfigurationDataEntity();
- entity.setAiravataAutoSchedule(model.isAiravataAutoSchedule());
- entity.setOverrideManualScheduledParams(model.isOverrideManualScheduledParams());
- entity.setShareExperimentPublicly(model.isShareExperimentPublicly());
- entity.setThrottleResources(model.isThrottleResources());
+ entity.setAiravataAutoSchedule(model.getAiravataAutoSchedule());
+ entity.setOverrideManualScheduledParams(model.getOverrideManualScheduledParams());
+ entity.setShareExperimentPublicly(model.getShareExperimentPublicly());
+ entity.setThrottleResources(model.getThrottleResources());
entity.setUserDN(model.getUserDN());
- entity.setGenerateCert(model.isGenerateCert());
+ entity.setGenerateCert(model.getGenerateCert());
entity.setExperimentDataDir(model.getExperimentDataDir());
entity.setGroupResourceProfileId(model.getGroupResourceProfileId());
- entity.setUseUserCRPref(model.isUseUserCRPref());
+ entity.setUseUserCRPref(model.getUseUserCRPref());
entity.setInputStorageResourceId(model.getInputStorageResourceId());
entity.setOutputStorageResourceId(model.getOutputStorageResourceId());
// Extract scheduling fields from nested object
- ComputationalResourceSchedulingModel scheduling = model.getComputationalResourceScheduling();
- if (scheduling != null) {
+ if (model.hasComputationalResourceScheduling()) {
+ ComputationalResourceSchedulingModel scheduling = model.getComputationalResourceScheduling();
entity.setResourceHostId(scheduling.getResourceHostId());
entity.setTotalCPUCount(scheduling.getTotalCPUCount());
entity.setNodeCount(scheduling.getNodeCount());
@@ -258,7 +258,7 @@ public interface ExecutionMapper {
return entity;
}
- /** boolean to int (Thrift boolean fields stored as int in some entities) */
+ /** boolean to int (boolean fields stored as int in some entities) */
default int booleanToInt(boolean value) {
return value ? 1 : 0;
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentEntity.java
index 033b637b1f..860dffa26b 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentEntity.java
@@ -23,8 +23,8 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.airavata.model.experiment.ExperimentCleanupStrategy;
-import org.apache.airavata.model.experiment.ExperimentType;
+import org.apache.airavata.model.experiment.proto.ExperimentCleanupStrategy;
+import org.apache.airavata.model.experiment.proto.ExperimentType;
/**
* The persistent class for the experiment database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentInputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentInputEntity.java
index ce2eed1fc1..d05f1f13cf 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentInputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentInputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The persistent class for the experiment_input database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentOutputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentOutputEntity.java
index e1c12e6fc7..195dc36464 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentOutputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentOutputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The persistent class for the experiment_output database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentStatusEntity.java
index f61d238c92..eda3950470 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ExperimentStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.status.ExperimentState;
+import org.apache.airavata.model.status.proto.ExperimentState;
/**
* The persistent class for the experiment_status database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/GatewayEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/GatewayEntity.java
index bf24b88004..c1a6abb0f8 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/GatewayEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/GatewayEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.workspace.GatewayApprovalStatus;
+import org.apache.airavata.model.workspace.proto.GatewayApprovalStatus;
/**
* The persistent class for the gateway database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/JobStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/JobStatusEntity.java
index 6ca741b037..baf3cde821 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/JobStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/JobStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
/**
* The persistent class for the job_status database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/NotificationEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/NotificationEntity.java
index 3162512541..c4dda92e47 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/NotificationEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/NotificationEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.workspace.NotificationPriority;
+import org.apache.airavata.model.workspace.proto.NotificationPriority;
/**
* The persistent class for the notification database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessInputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessInputEntity.java
index a7ef78fd82..a4e131251d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessInputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessInputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The primary key class for the process_input database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessOutputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessOutputEntity.java
index 802f043180..49ef4923e8 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessOutputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessOutputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
/**
* The persistent class for the process_output database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessStatusEntity.java
index 34e37948cc..952b69e269 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/ProcessStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.status.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessState;
/**
* The persistent class for the process_status database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskEntity.java
index 506f63b25e..9ccd083ce5 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskEntity.java
@@ -23,7 +23,7 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.airavata.model.task.TaskTypes;
+import org.apache.airavata.model.task.proto.TaskTypes;
/**
* The persistent class for the task database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskStatusEntity.java
index 87b60008d0..8b42db5f7e 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/TaskStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.status.TaskState;
+import org.apache.airavata.model.status.proto.TaskState;
/**
* The persistent class for the task_status database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/AiravataWorkflowStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/AiravataWorkflowStatusEntity.java
index 6449d08504..78e690b575 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/AiravataWorkflowStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/AiravataWorkflowStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.workflow.WorkflowState;
+import org.apache.airavata.model.workflow.proto.WorkflowState;
@Entity
@Table(name = "AIRAVATA_WORKFLOW_STATUS")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/ApplicationStatusEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/ApplicationStatusEntity.java
index 59cc928153..07d9588411 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/ApplicationStatusEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/ApplicationStatusEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.workflow.ApplicationState;
+import org.apache.airavata.model.workflow.proto.ApplicationState;
@Entity
@Table(name = "APPLICATION_STATUS")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/EdgeEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/EdgeEntity.java
index f1d71925ad..0b0bc9b18c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/EdgeEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/EdgeEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
+import org.apache.airavata.model.proto.ComponentStatus;
/**
* The persistent class for the edge database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerInputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerInputEntity.java
index 6f39165f5d..58e03deb08 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerInputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerInputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
@Entity
@Table(name = "HANDLER_INPUT")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerOutputEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerOutputEntity.java
index c14133d1a0..7429f100b1 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerOutputEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/HandlerOutputEntity.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
-import org.apache.airavata.model.application.io.DataType;
+import org.apache.airavata.model.application.io.proto.DataType;
@Entity
@Table(name = "HANDLER_OUTPUT")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/NodeEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/NodeEntity.java
index 495614fcc0..87b9fd62ac 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/NodeEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/NodeEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
+import org.apache.airavata.model.proto.ComponentStatus;
/**
* The persistent class for the node database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/PortEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/PortEntity.java
index 336be26686..80622adda1 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/PortEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/PortEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.ComponentStatus;
+import org.apache.airavata.model.proto.ComponentStatus;
/**
* The persistent class for the port database table.
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowConnectionEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowConnectionEntity.java
index 466af601b3..02df783c5c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowConnectionEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowConnectionEntity.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.model.workflow;
import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
-import org.apache.airavata.model.workflow.ComponentType;
+import org.apache.airavata.model.workflow.proto.ComponentType;
@Entity
@Table(name = "WORKFLOW_CONNECTION")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowHandlerEntity.java b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowHandlerEntity.java
index 6b25430d2b..5d42a5b5fc 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowHandlerEntity.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/model/workflow/WorkflowHandlerEntity.java
@@ -23,7 +23,7 @@ import jakarta.persistence.*;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
-import org.apache.airavata.model.workflow.HandlerType;
+import org.apache.airavata.model.workflow.proto.HandlerType;
@Entity
@Table(name = "WORKFLOW_HANDLER")
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/AiravataCustomMailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/AiravataCustomMailParser.java
index 47352e279f..44bedadd00 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/AiravataCustomMailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/AiravataCustomMailParser.java
@@ -24,7 +24,7 @@ import jakarta.mail.MessagingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ClusterStatusMonitorJob.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ClusterStatusMonitorJob.java
index 8e66368f3c..85fad77edd 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ClusterStatusMonitorJob.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ClusterStatusMonitorJob.java
@@ -29,14 +29,14 @@ import java.util.List;
import org.apache.airavata.common.config.ServerSettings;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.credential.store.cpi.CredentialStoreService;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
-import org.apache.airavata.model.credential.store.SSHCredential;
-import org.apache.airavata.model.status.QueueStatusModel;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.ComputeResourcePreference;
+import org.apache.airavata.model.credential.store.proto.SSHCredential;
+import org.apache.airavata.model.status.proto.QueueStatusModel;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TSocket;
@@ -85,12 +85,12 @@ public class ClusterStatusMonitorJob implements Job {
hostName = computeResourceDescription.getHostName();
// FIXME This should come from compute resource description
port = 22;
- computeResourceDescription.getBatchQueues().stream().forEach(q -> {
+ computeResourceDescription.getBatchQueuesList().stream().forEach(q -> {
queueNames.add(q.getQueueName());
});
List<JobSubmissionInterface> jobSubmissionInterfaces =
- computeResourceDescription.getJobSubmissionInterfaces();
+ computeResourceDescription.getJobSubmissionInterfacesList();
if (jobSubmissionInterfaces != null && jobSubmissionInterfaces.size() > 0) {
if (jobSubmissionInterfaces
.get(0)
@@ -112,7 +112,7 @@ public class ClusterStatusMonitorJob implements Job {
computeResourceProfiles.add(computeResourceProfile);
}
}
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(e.getMessage());
}
});
@@ -193,8 +193,10 @@ public class ClusterStatusMonitorJob implements Job {
sparts = knts.split("/");
int running = Integer.parseInt(sparts[0].trim());
int queued = Integer.parseInt(sparts[1].trim());
- queueStatus = new QueueStatusModel(
- hostName, queue, isUp, running, queued, System.currentTimeMillis());
+ queueStatus = QueueStatusModel.newBuilder()
+ .setHostName(hostName).setQueueName(queue).setQueueUp(isUp)
+ .setRunningJobs(running).setQueuedJobs(queued)
+ .setTime(System.currentTimeMillis()).build();
} else if (computeResourceProfile
.getResourceManagerType()
@@ -204,8 +206,10 @@ public class ClusterStatusMonitorJob implements Job {
boolean isUp = sparts[3].equalsIgnoreCase("yes");
int running = Integer.parseInt(sparts[6].trim());
int queued = Integer.parseInt(sparts[5].trim());
- queueStatus = new QueueStatusModel(
- hostName, queue, isUp, running, queued, System.currentTimeMillis());
+ queueStatus = QueueStatusModel.newBuilder()
+ .setHostName(hostName).setQueueName(queue).setQueueUp(isUp)
+ .setRunningJobs(running).setQueuedJobs(queued)
+ .setTime(System.currentTimeMillis()).build();
}
if (queueStatus != null) queueStatuses.add(queueStatus);
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ComputeResourceMonitor.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ComputeResourceMonitor.java
index 5f218701a2..2ca1eff462 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ComputeResourceMonitor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ComputeResourceMonitor.java
@@ -20,10 +20,10 @@
package org.apache.airavata.execution.monitor;
import org.apache.airavata.execution.scheduler.Utils;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
import org.apache.airavata.registry.api.RegistryService;
public abstract class ComputeResourceMonitor {
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/EmailBasedMonitor.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/EmailBasedMonitor.java
index ea2428e015..2088e9bfcb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/EmailBasedMonitor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/EmailBasedMonitor.java
@@ -35,8 +35,8 @@ import org.apache.airavata.common.config.ApplicationSettings;
import org.apache.airavata.common.config.ServerSettings;
import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.common.server.IServer;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
-import org.apache.airavata.model.job.JobModel;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManagerType;
+import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/HTCondorEmailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/HTCondorEmailParser.java
index c5c830a171..19c8b8da9f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/HTCondorEmailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/HTCondorEmailParser.java
@@ -26,8 +26,8 @@ import java.util.Optional;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStateValidator.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStateValidator.java
index f45ebe9beb..35e1d1d795 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStateValidator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStateValidator.java
@@ -29,7 +29,7 @@ import static org.apache.airavata.model.status.JobState.SUBMITTED;
import static org.apache.airavata.model.status.JobState.SUSPENDED;
import static org.apache.airavata.model.status.JobState.UNKNOWN;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
public class JobStateValidator {
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResult.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResult.java
index ba943b76b1..c77955ac3f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResult.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResult.java
@@ -19,7 +19,7 @@
*/
package org.apache.airavata.execution.monitor;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
public class JobStatusResult {
private JobState state;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResultDeserializer.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResultDeserializer.java
index 951dd6c737..5583b9a2bb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResultDeserializer.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/JobStatusResultDeserializer.java
@@ -20,7 +20,7 @@
package org.apache.airavata.execution.monitor;
import java.util.Map;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.kafka.common.serialization.Deserializer;
public class JobStatusResultDeserializer implements Deserializer<JobStatusResult> {
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/LSFEmailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/LSFEmailParser.java
index ba76acc627..6765f519aa 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/LSFEmailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/LSFEmailParser.java
@@ -25,7 +25,7 @@ import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/MonitoringJob.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/MonitoringJob.java
index d1dd8bbdbb..07807b11c3 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/MonitoringJob.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/MonitoringJob.java
@@ -28,10 +28,10 @@ import org.apache.airavata.compute.util.AgentAdaptor;
import org.apache.airavata.compute.util.CommandOutput;
import org.apache.airavata.execution.orchestrator.AdaptorSupport;
import org.apache.airavata.execution.orchestrator.AdaptorSupportImpl;
-import org.apache.airavata.model.appcatalog.computeresource.*;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.status.QueueStatusModel;
+import org.apache.airavata.model.appcatalog.computeresource.proto.*;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.status.proto.QueueStatusModel;
import org.apache.airavata.registry.api.RegistryService;
import org.quartz.Job;
import org.quartz.JobDataMap;
@@ -114,7 +114,7 @@ public class MonitoringJob extends ComputeResourceMonitor implements Job {
throws Exception {
String computeResourceId = computeResourcePolicy.getComputeResourceId();
ComputeResourceDescription comResourceDes = client.getComputeResource(computeResourceId);
- List<JobSubmissionInterface> jobSubmissionInterfaces = comResourceDes.getJobSubmissionInterfaces();
+ List<JobSubmissionInterface> jobSubmissionInterfaces = comResourceDes.getJobSubmissionInterfacesList();
Collections.sort(jobSubmissionInterfaces, Comparator.comparingInt(JobSubmissionInterface::getPriorityOrder));
JobSubmissionInterface jobSubmissionInterface = jobSubmissionInterfaces.get(0);
JobSubmissionProtocol jobSubmissionProtocol = jobSubmissionInterface.getJobSubmissionProtocol();
@@ -126,11 +126,11 @@ public class MonitoringJob extends ComputeResourceMonitor implements Job {
if (resourceJobManager.getResourceJobManagerType().name().equals("SLURM")) {
String baseCommand = "sinfo";
- if (resourceJobManager.getJobManagerCommands().containsKey(JobManagerCommand.SHOW_CLUSTER_INFO)) {
- baseCommand = resourceJobManager.getJobManagerCommands().get(JobManagerCommand.SHOW_CLUSTER_INFO);
+ if (resourceJobManager.getJobManagerCommandsMap().containsKey(JobManagerCommand.SHOW_CLUSTER_INFO)) {
+ baseCommand = resourceJobManager.getJobManagerCommandsMap().get(JobManagerCommand.SHOW_CLUSTER_INFO);
}
- List<String> allowedBatchQueues = computeResourcePolicy.getAllowedBatchQueues();
+ List<String> allowedBatchQueues = computeResourcePolicy.getAllowedBatchQueuesList();
List<QueueStatusModel> queueStatusModels = new ArrayList<>();
for (String queue : allowedBatchQueues) {
@@ -169,18 +169,18 @@ public class MonitoringJob extends ComputeResourceMonitor implements Job {
String runningJobCommand = "squeue";
String pendingJobCommand = "squeue";
if (resourceJobManager
- .getJobManagerCommands()
+ .getJobManagerCommandsMap()
.containsKey(JobManagerCommand.SHOW_NO_OF_RUNNING_JOBS)) {
runningJobCommand = resourceJobManager
- .getJobManagerCommands()
+ .getJobManagerCommandsMap()
.get(JobManagerCommand.SHOW_NO_OF_RUNNING_JOBS);
}
if (resourceJobManager
- .getJobManagerCommands()
+ .getJobManagerCommandsMap()
.containsKey(JobManagerCommand.SHOW_NO_OF_PENDING_JOBS)) {
pendingJobCommand = resourceJobManager
- .getJobManagerCommands()
+ .getJobManagerCommandsMap()
.get(JobManagerCommand.SHOW_NO_OF_PENDING_JOBS);
}
@@ -197,14 +197,15 @@ public class MonitoringJob extends ComputeResourceMonitor implements Job {
pendingJobsCommandOutput, Constants.JOB_SUBMISSION_PROTOCOL_SLURM);
}
- QueueStatusModel queueStatusModel = new QueueStatusModel();
- queueStatusModel.setHostName(comResourceDes.getHostName());
- queueStatusModel.setQueueName(queue);
- queueStatusModel.setQueueUp(queueStatus);
- queueStatusModel.setRunningJobs(runningJobs);
- queueStatusModel.setQueuedJobs(pendingJobs);
+ QueueStatusModel queueStatusModel = QueueStatusModel.newBuilder()
+ .setHostName(comResourceDes.getHostName())
+ .setQueueName(queue)
+ .setQueueUp(queueStatus)
+ .setRunningJobs(runningJobs)
+ .setQueuedJobs(pendingJobs)
+ .setTime(System.currentTimeMillis())
+ .build();
queueStatusModels.add(queueStatusModel);
- queueStatusModel.setTime(System.currentTimeMillis());
}
client.registerQueueStatuses(queueStatusModels);
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/PBSEmailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/PBSEmailParser.java
index 4c5c7bbbd6..57e324201f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/PBSEmailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/PBSEmailParser.java
@@ -24,7 +24,7 @@ import jakarta.mail.MessagingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeJobStatusParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeJobStatusParser.java
index b3d86f53a7..347ecfa95c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeJobStatusParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeJobStatusParser.java
@@ -24,8 +24,8 @@ import com.google.gson.JsonSyntaxException;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeMonitor.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeMonitor.java
index 523fb5925e..e87d5807b6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeMonitor.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/RealtimeMonitor.java
@@ -26,7 +26,7 @@ import java.util.Properties;
import org.apache.airavata.common.config.ServerSettings;
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.server.IServer;
-import org.apache.airavata.model.job.JobModel;
+import org.apache.airavata.model.job.proto.JobModel;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerConfig;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ResourceConfig.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ResourceConfig.java
index 2145597c75..b8c867181a 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ResourceConfig.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/ResourceConfig.java
@@ -20,7 +20,7 @@
package org.apache.airavata.execution.monitor;
import java.util.List;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManagerType;
public class ResourceConfig {
private ResourceJobManagerType jobManagerType;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/SLURMEmailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/SLURMEmailParser.java
index 5cac465376..917a8034f4 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/SLURMEmailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/SLURMEmailParser.java
@@ -24,7 +24,7 @@ import jakarta.mail.MessagingException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/UGEEmailParser.java b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/UGEEmailParser.java
index 3cab3ac6da..100b96807a 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/monitor/UGEEmailParser.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/monitor/UGEEmailParser.java
@@ -25,7 +25,7 @@ import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.airavata.common.exception.AiravataException;
-import org.apache.airavata.model.status.JobState;
+import org.apache.airavata.model.status.proto.JobState;
import org.apache.airavata.registry.api.RegistryService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AbstractOrchestrator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AbstractOrchestrator.java
index 9bbb96db40..ad16933f20 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AbstractOrchestrator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AbstractOrchestrator.java
@@ -22,7 +22,7 @@ package org.apache.airavata.execution.orchestrator;
import java.io.IOException;
import org.apache.airavata.common.config.ServerSettings;
import org.apache.airavata.common.exception.ApplicationSettingsException;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -61,7 +61,7 @@ public abstract class AbstractOrchestrator implements Orchestrator {
this.airavataUserName = airavataUserName;
}
- public AbstractOrchestrator() throws OrchestratorException, TException {
+ public AbstractOrchestrator() throws OrchestratorException, Exception {
try {
/* Initializing the OrchestratorConfiguration object */
orchestratorConfiguration = OrchestratorUtils.loadOrchestratorConfiguration();
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupport.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupport.java
index c7778356b7..c52a0004d3 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupport.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupport.java
@@ -21,8 +21,8 @@ package org.apache.airavata.execution.orchestrator;
import org.apache.airavata.compute.util.AgentAdaptor;
import org.apache.airavata.compute.util.AgentException;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
import org.apache.airavata.storage.util.StorageResourceAdaptor;
/**
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupportImpl.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupportImpl.java
index 12a9dae22f..9f1230a6e6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupportImpl.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AdaptorSupportImpl.java
@@ -23,8 +23,8 @@ import java.util.Optional;
import org.apache.airavata.compute.util.AgentAdaptor;
import org.apache.airavata.compute.util.AgentException;
import org.apache.airavata.compute.util.SSHJAgentAdaptor;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
import org.apache.airavata.storage.util.SSHJStorageAdaptor;
import org.apache.airavata.storage.util.StorageResourceAdaptor;
import org.slf4j.Logger;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AgentStore.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AgentStore.java
index 2f47a57e4d..7bd53538ce 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AgentStore.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AgentStore.java
@@ -23,8 +23,8 @@ import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import org.apache.airavata.compute.util.AgentAdaptor;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
import org.apache.airavata.storage.util.StorageResourceAdaptor;
/**
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AiravataTask.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AiravataTask.java
index 49e246fe31..552063df9a 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AiravataTask.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/AiravataTask.java
@@ -35,14 +35,14 @@ import org.apache.airavata.messaging.service.MessagingFactory;
import org.apache.airavata.messaging.service.Publisher;
import org.apache.airavata.messaging.service.RabbitMQPublisher;
import org.apache.airavata.messaging.service.Type;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.data.replica.*;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.messaging.event.*;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.status.*;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.data.replica.proto.*;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.messaging.event.proto.*;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.status.proto.*;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.security.profile.user.core.repositories.UserProfileRepository;
import org.apache.commons.io.FileUtils;
@@ -130,7 +130,7 @@ public abstract class AiravataTask extends AbstractTask {
}
if (currentRetryCount >= getRetryCount() || fatal) {
- ProcessStatus status = new ProcessStatus(ProcessState.FAILED);
+ ProcessStatus status = ProcessStatus.newBuilder().setState(ProcessState.FAILED).build();
StringWriter errors = new StringWriter();
String errorCode = UUID.randomUUID().toString();
@@ -140,21 +140,24 @@ public abstract class AiravataTask extends AbstractTask {
// wrapping from new error object with error code
error = new TaskOnFailException(errorMessage, true, error);
- status.setReason(errorMessage);
+ status = status.toBuilder()
+ .setReason(errorMessage)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
errors.write(ExceptionUtils.getStackTrace(error));
logger.error(errorMessage, error);
- status.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
if (getTaskContext() != null) { // task context could be null if the initialization failed
getTaskContext().setProcessStatus(status);
} else {
logger.warn("Task context is null. So can not store the process status in the context");
}
- ErrorModel errorModel = new ErrorModel();
- errorModel.setUserFriendlyMessage(reason);
- errorModel.setActualErrorMessage(errors.toString());
- errorModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
+ ErrorModel errorModel = ErrorModel.newBuilder()
+ .setUserFriendlyMessage(reason)
+ .setActualErrorMessage(errors.toString())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
if (!skipAllStatusPublish) {
publishTaskState(TaskState.FAILED);
@@ -180,7 +183,9 @@ public abstract class AiravataTask extends AbstractTask {
cleanup();
if (autoSchedule) {
- ProcessStatus requeueStatus = new ProcessStatus(ProcessState.REQUEUED);
+ ProcessStatus requeueStatus = ProcessStatus.newBuilder()
+ .setState(ProcessState.REQUEUED)
+ .build();
saveAndPublishProcessStatus(requeueStatus);
}
@@ -211,9 +216,10 @@ public abstract class AiravataTask extends AbstractTask {
protected void saveAndPublishProcessStatus(ProcessState state) {
if (!skipProcessStatusPublish) {
- ProcessStatus processStatus = new ProcessStatus(state);
- processStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
+ ProcessStatus processStatus = ProcessStatus.newBuilder()
+ .setState(state)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
if (getTaskContext() != null) {
getTaskContext().setProcessStatus(processStatus);
} else {
@@ -228,15 +234,20 @@ public abstract class AiravataTask extends AbstractTask {
try {
if (!skipProcessStatusPublish) {
if (status.getTimeOfStateChange() == 0 || status.getTimeOfStateChange() > 0) {
- status.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- } else {
- status.setTimeOfStateChange(status.getTimeOfStateChange());
+ status = status.toBuilder()
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
}
getRegistryServiceClient().addProcessStatus(status, getProcessId());
- ProcessIdentifier identifier = new ProcessIdentifier(getProcessId(), getExperimentId(), getGatewayId());
- ProcessStatusChangeEvent processStatusChangeEvent =
- new ProcessStatusChangeEvent(status.getState(), identifier);
+ ProcessIdentifier identifier = ProcessIdentifier.newBuilder()
+ .setProcessId(getProcessId())
+ .setExperimentId(getExperimentId())
+ .setGatewayId(getGatewayId())
+ .build();
+ ProcessStatusChangeEvent processStatusChangeEvent = ProcessStatusChangeEvent.newBuilder()
+ .setState(status.getState())
+ .setProcessIdentity(identifier)
+ .build();
MessageContext msgCtx = new MessageContext(
processStatusChangeEvent,
MessageType.PROCESS,
@@ -255,23 +266,27 @@ public abstract class AiravataTask extends AbstractTask {
throws Exception {
try {
- JobStatus jobStatus = new JobStatus();
- jobStatus.setReason(jobState.name());
- jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
- jobStatus.setJobState(jobState);
-
- if (jobStatus.getTimeOfStateChange() == 0 || jobStatus.getTimeOfStateChange() > 0) {
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- } else {
- jobStatus.setTimeOfStateChange(jobStatus.getTimeOfStateChange());
- }
+ long now = AiravataUtils.getCurrentTimestamp().getTime();
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setReason(jobState.name())
+ .setTimeOfStateChange(now)
+ .setJobState(jobState)
+ .build();
getRegistryServiceClient().addJobStatus(jobStatus, taskId, jobId);
- JobIdentifier identifier = new JobIdentifier(jobId, taskId, processId, experimentId, gateway);
-
- JobStatusChangeEvent jobStatusChangeEvent = new JobStatusChangeEvent(jobStatus.getJobState(), identifier);
+ JobIdentifier identifier = JobIdentifier.newBuilder()
+ .setJobId(jobId)
+ .setTaskId(taskId)
+ .setProcessId(processId)
+ .setExperimentId(experimentId)
+ .setGatewayId(gateway)
+ .build();
+
+ JobStatusChangeEvent jobStatusChangeEvent = JobStatusChangeEvent.newBuilder()
+ .setJobState(jobStatus.getJobState())
+ .setJobIdentity(identifier)
+ .build();
MessageContext msgCtx = new MessageContext(
jobStatusChangeEvent, MessageType.JOB, AiravataUtils.getId(MessageType.JOB.name()), gateway);
msgCtx.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
@@ -285,23 +300,23 @@ public abstract class AiravataTask extends AbstractTask {
public void saveExperimentOutput(String outputName, String outputVal) throws TaskOnFailException {
try {
ExperimentModel experiment = getRegistryServiceClient().getExperiment(experimentId);
- List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
- if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
+ List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputsList();
+ if (!experimentOutputs.isEmpty()) {
for (OutputDataObjectType expOutput : experimentOutputs) {
if (expOutput.getName().equals(outputName)) {
String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData());
- expOutput.setValue(productUri);
+ OutputDataObjectType updatedOutput = expOutput.toBuilder().setValue(productUri).build();
if (!skipExperimentStatusPublish) {
getRegistryServiceClient()
.addExperimentProcessOutputs(
- "EXPERIMENT_OUTPUT", Collections.singletonList(expOutput), experimentId);
+ "EXPERIMENT_OUTPUT", Collections.singletonList(updatedOutput), experimentId);
}
if (!skipProcessStatusPublish) {
getRegistryServiceClient()
.addExperimentProcessOutputs(
- "PROCESS_OUTPUT", Collections.singletonList(expOutput), processId);
+ "PROCESS_OUTPUT", Collections.singletonList(updatedOutput), processId);
}
}
}
@@ -317,8 +332,8 @@ public abstract class AiravataTask extends AbstractTask {
public void saveExperimentOutputCollection(String outputName, List<String> outputVals) throws TaskOnFailException {
try {
ExperimentModel experiment = getRegistryServiceClient().getExperiment(experimentId);
- List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputs();
- if (experimentOutputs != null && !experimentOutputs.isEmpty()) {
+ List<OutputDataObjectType> experimentOutputs = experiment.getExperimentOutputsList();
+ if (!experimentOutputs.isEmpty()) {
for (OutputDataObjectType expOutput : experimentOutputs) {
if (expOutput.getName().equals(outputName)) {
List<String> productUris = new ArrayList<String>();
@@ -326,17 +341,18 @@ public abstract class AiravataTask extends AbstractTask {
String productUri = saveDataProduct(outputName, outputVal, expOutput.getMetaData());
productUris.add(productUri);
}
- expOutput.setValue(String.join(",", productUris));
+ OutputDataObjectType updatedOutput = expOutput.toBuilder()
+ .setValue(String.join(",", productUris)).build();
if (!skipExperimentStatusPublish) {
getRegistryServiceClient()
.addExperimentProcessOutputs(
- "EXPERIMENT_OUTPUT", Collections.singletonList(expOutput), experimentId);
+ "EXPERIMENT_OUTPUT", Collections.singletonList(updatedOutput), experimentId);
}
if (!skipProcessStatusPublish) {
getRegistryServiceClient()
.addExperimentProcessOutputs(
- "PROCESS_OUTPUT", Collections.singletonList(expOutput), processId);
+ "PROCESS_OUTPUT", Collections.singletonList(updatedOutput), processId);
}
}
}
@@ -351,11 +367,11 @@ public abstract class AiravataTask extends AbstractTask {
private String saveDataProduct(String outputName, String outputVal, String outputMetadata) throws Exception {
- DataProductModel dataProductModel = new DataProductModel();
- dataProductModel.setGatewayId(getGatewayId());
- dataProductModel.setOwnerName(getProcessModel().getUserName());
- dataProductModel.setProductName(outputName);
- dataProductModel.setDataProductType(DataProductType.FILE);
+ DataProductModel.Builder dataProductBuilder = DataProductModel.newBuilder()
+ .setGatewayId(getGatewayId())
+ .setOwnerName(getProcessModel().getUserName())
+ .setProductName(outputName)
+ .setDataProductType(DataProductType.FILE);
// Copy experiment output's file-metadata to data product's metadata
if (outputMetadata != null) {
try {
@@ -364,7 +380,7 @@ public abstract class AiravataTask extends AbstractTask {
JSONObject fileMetadata = outputMetadataJSON.getJSONObject("file-metadata");
for (Object key : fileMetadata.keySet()) {
String k = key.toString();
- dataProductModel.putToProductMetadata(k, fileMetadata.getString(k));
+ dataProductBuilder.putProductMetadata(k, fileMetadata.getString(k));
}
}
} catch (JSONException e) {
@@ -372,22 +388,22 @@ public abstract class AiravataTask extends AbstractTask {
}
}
- DataReplicaLocationModel replicaLocationModel = new DataReplicaLocationModel();
- replicaLocationModel.setStorageResourceId(
- getTaskContext().getStorageResourceDescription().getStorageResourceId());
- replicaLocationModel.setReplicaName(outputName + " gateway data store copy");
- replicaLocationModel.setReplicaLocationCategory(ReplicaLocationCategory.GATEWAY_DATA_STORE);
- replicaLocationModel.setReplicaPersistentType(ReplicaPersistentType.TRANSIENT);
- replicaLocationModel.setFilePath(outputVal);
- dataProductModel.addToReplicaLocations(replicaLocationModel);
+ DataReplicaLocationModel replicaLocationModel = DataReplicaLocationModel.newBuilder()
+ .setStorageResourceId(getTaskContext().getStorageResourceDescription().getStorageResourceId())
+ .setReplicaName(outputName + " gateway data store copy")
+ .setReplicaLocationCategory(ReplicaLocationCategory.GATEWAY_DATA_STORE)
+ .setReplicaPersistentType(ReplicaPersistentType.TRANSIENT)
+ .setFilePath(outputVal)
+ .build();
+ dataProductBuilder.addReplicaLocations(replicaLocationModel);
- return getRegistryServiceClient().registerDataProduct(dataProductModel);
+ return getRegistryServiceClient().registerDataProduct(dataProductBuilder.build());
}
@SuppressWarnings("WeakerAccess")
private void saveExperimentError(ErrorModel errorModel) {
try {
- errorModel.setErrorId(AiravataUtils.getId("EXP_ERROR"));
+ errorModel = errorModel.toBuilder().setErrorId(AiravataUtils.getId("EXP_ERROR")).build();
getRegistryServiceClient().addErrors("EXPERIMENT_ERROR", errorModel, experimentId);
} catch (Exception e) {
String msg = "expId: " + getExperimentId() + " processId: " + getProcessId()
@@ -399,7 +415,7 @@ public abstract class AiravataTask extends AbstractTask {
@SuppressWarnings("WeakerAccess")
private void saveProcessError(ErrorModel errorModel) {
try {
- errorModel.setErrorId(AiravataUtils.getId("PROCESS_ERROR"));
+ errorModel = errorModel.toBuilder().setErrorId(AiravataUtils.getId("PROCESS_ERROR")).build();
getRegistryServiceClient().addErrors("PROCESS_ERROR", errorModel, getProcessId());
} catch (Exception e) {
logger.error(
@@ -412,7 +428,7 @@ public abstract class AiravataTask extends AbstractTask {
@SuppressWarnings("WeakerAccess")
private void saveTaskError(ErrorModel errorModel) {
try {
- errorModel.setErrorId(AiravataUtils.getId("TASK_ERROR"));
+ errorModel = errorModel.toBuilder().setErrorId(AiravataUtils.getId("TASK_ERROR")).build();
getRegistryServiceClient().addErrors("TASK_ERROR", errorModel, getTaskId());
} catch (Exception e) {
logger.error(
@@ -542,13 +558,17 @@ public abstract class AiravataTask extends AbstractTask {
protected void publishTaskState(TaskState ts) {
try {
- TaskStatus taskStatus = new TaskStatus();
- taskStatus.setState(ts);
- taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
+ TaskStatus taskStatus = TaskStatus.newBuilder()
+ .setState(ts)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
getRegistryServiceClient().addTaskStatus(taskStatus, getTaskId());
- TaskIdentifier identifier =
- new TaskIdentifier(getTaskId(), getProcessId(), getExperimentId(), getGatewayId());
- TaskStatusChangeEvent taskStatusChangeEvent = new TaskStatusChangeEvent(ts, identifier);
+ TaskIdentifier identifier = TaskIdentifier.newBuilder()
+ .setTaskId(getTaskId()).setProcessId(getProcessId())
+ .setExperimentId(getExperimentId()).setGatewayId(getGatewayId())
+ .build();
+ TaskStatusChangeEvent taskStatusChangeEvent = TaskStatusChangeEvent.newBuilder()
+ .setState(ts).setTaskIdentity(identifier).build();
MessageContext msgCtx = new MessageContext(
taskStatusChangeEvent,
MessageType.TASK,
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/BatchQueueValidator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/BatchQueueValidator.java
index 5ffd47ceac..86fc4cbd0b 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/BatchQueueValidator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/BatchQueueValidator.java
@@ -22,15 +22,15 @@ package org.apache.airavata.execution.orchestrator;
import java.util.ArrayList;
import java.util.List;
import org.apache.airavata.execution.scheduler.Utils;
-import org.apache.airavata.model.appcatalog.computeresource.BatchQueue;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.error.ValidatorResult;
-import org.apache.airavata.model.experiment.*;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.appcatalog.computeresource.proto.BatchQueue;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.error.proto.ValidatorResult;
+import org.apache.airavata.model.experiment.proto.*;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,34 +44,34 @@ public class BatchQueueValidator implements JobMetadataValidator {
}
public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel) {
- ValidationResults validationResults = new ValidationResults();
- validationResults.setValidationState(true);
+ boolean valid = true;
+ List<ValidatorResult> validatorResultList;
try {
- List<ValidatorResult> validatorResultList = validateUserConfiguration(experiment, processModel);
+ validatorResultList = validateUserConfiguration(experiment, processModel);
for (ValidatorResult result : validatorResultList) {
- if (!result.isResult()) {
- validationResults.setValidationState(false);
+ if (!result.getResult()) {
+ valid = false;
break;
}
}
- validationResults.setValidationResultList(validatorResultList);
- } catch (TException e) {
+ } catch (Exception e) {
throw new RuntimeException("Error while validating", e);
}
- return validationResults;
+ return ValidationResults.newBuilder()
+ .setValidationState(valid)
+ .addAllValidationResultList(validatorResultList)
+ .build();
}
private List<ValidatorResult> validateUserConfiguration(ExperimentModel experiment, ProcessModel processModel)
- throws TException {
+ throws Exception {
List<ValidatorResult> validatorResultList = new ArrayList<ValidatorResult>();
UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
ComputationalResourceSchedulingModel computationalResourceScheduling =
userConfigurationData.getComputationalResourceScheduling();
- if (userConfigurationData.isAiravataAutoSchedule()) {
+ if (userConfigurationData.getAiravataAutoSchedule()) {
logger.info("User enabled Auto-Schedule. Hence we don't do validation..");
- ValidatorResult validatorResult = new ValidatorResult();
- validatorResult.setResult(true);
- validatorResultList.add(validatorResult);
+ validatorResultList.add(ValidatorResult.newBuilder().setResult(true).build());
} else {
ComputeResourceDescription computeResource;
if (processModel == null) {
@@ -84,139 +84,133 @@ public class BatchQueueValidator implements JobMetadataValidator {
processModel.getProcessResourceSchedule().getResourceHostId());
}
- List<BatchQueue> batchQueues = computeResource.getBatchQueues();
+ List<BatchQueue> batchQueues = computeResource.getBatchQueuesList();
- if (computationalResourceScheduling == null) {
- ValidatorResult queueNameResult = new ValidatorResult();
- queueNameResult.setResult(false);
- queueNameResult.setErrorDetails(
- "No compute resource scheduling for experiment " + experiment.getExperimentId());
- validatorResultList.add(queueNameResult);
+ if (!experiment.hasUserConfigurationData()
+ || !userConfigurationData.hasComputationalResourceScheduling()) {
+ validatorResultList.add(ValidatorResult.newBuilder()
+ .setResult(false)
+ .setErrorDetails("No compute resource scheduling for experiment " + experiment.getExperimentId())
+ .build());
return validatorResultList;
}
- if (computationalResourceScheduling.getQueueName() == null) {
- ValidatorResult queueNameResult = new ValidatorResult();
- queueNameResult.setResult(false);
- queueNameResult.setErrorDetails("No queue name for experiment " + experiment.getExperimentId());
- validatorResultList.add(queueNameResult);
+ if (computationalResourceScheduling.getQueueName().isEmpty()) {
+ validatorResultList.add(ValidatorResult.newBuilder()
+ .setResult(false)
+ .setErrorDetails("No queue name for experiment " + experiment.getExperimentId())
+ .build());
return validatorResultList;
}
- if (batchQueues != null && !batchQueues.isEmpty()) {
+ if (!batchQueues.isEmpty()) {
String experimentQueueName =
computationalResourceScheduling.getQueueName().trim();
int experimentWallTimeLimit = computationalResourceScheduling.getWallTimeLimit();
int experimentNodeCount = computationalResourceScheduling.getNodeCount();
int experimentCPUCount = computationalResourceScheduling.getTotalCPUCount();
- ValidatorResult queueNameResult = new ValidatorResult();
// Set the validation to false. Once all the queue's are looped, if nothing matches, then this gets
// passed.
- queueNameResult.setResult(false);
- queueNameResult.setErrorDetails(
- "The specified queue " + experimentQueueName
- + " does not exist. If you believe this is an error, contact the administrator to verify App-Catalog Configurations");
+ ValidatorResult.Builder queueNameResultBuilder = ValidatorResult.newBuilder()
+ .setResult(false)
+ .setErrorDetails(
+ "The specified queue " + experimentQueueName
+ + " does not exist. If you believe this is an error, contact the administrator to verify App-Catalog Configurations");
for (BatchQueue queue : batchQueues) {
String resourceQueueName = queue.getQueueName();
int maxQueueRunTime = queue.getMaxRunTime();
int maxNodeCount = queue.getMaxNodes();
int maxcpuCount = queue.getMaxProcessors();
- if (resourceQueueName != null && resourceQueueName.equals(experimentQueueName)) {
- queueNameResult.setResult(true);
- queueNameResult.setErrorDetails("");
+ if (!resourceQueueName.isEmpty() && resourceQueueName.equals(experimentQueueName)) {
+ queueNameResultBuilder.setResult(true).setErrorDetails("");
// Validate if the specified wall time is within allowable limit
- ValidatorResult wallTimeResult = new ValidatorResult();
+ ValidatorResult.Builder wallTimeResultBuilder = ValidatorResult.newBuilder();
if (experimentWallTimeLimit == 0) {
- wallTimeResult.setResult(false);
- wallTimeResult.setErrorDetails("Walltime cannot be zero for queue " + resourceQueueName);
+ wallTimeResultBuilder.setResult(false)
+ .setErrorDetails("Walltime cannot be zero for queue " + resourceQueueName);
} else {
if (maxQueueRunTime == 0) {
- wallTimeResult.setResult(true);
- wallTimeResult.setErrorDetails("Maximum wall time is not configured for the queue,"
- + "Validation is being skipped");
+ wallTimeResultBuilder.setResult(true)
+ .setErrorDetails("Maximum wall time is not configured for the queue,"
+ + "Validation is being skipped");
logger.info("Maximum wall time is not configured for the queue"
+ "Validation is being skipped");
} else {
if (maxQueueRunTime < experimentWallTimeLimit) {
- wallTimeResult.setResult(false);
- wallTimeResult.setErrorDetails("Job Execution walltime " + experimentWallTimeLimit
- + "exceeds the allowable walltime"
- + maxQueueRunTime + "for queue "
- + resourceQueueName);
+ wallTimeResultBuilder.setResult(false)
+ .setErrorDetails("Job Execution walltime " + experimentWallTimeLimit
+ + "exceeds the allowable walltime"
+ + maxQueueRunTime + "for queue "
+ + resourceQueueName);
} else {
- wallTimeResult.setResult(true);
- wallTimeResult.setErrorDetails("");
+ wallTimeResultBuilder.setResult(true).setErrorDetails("");
}
}
}
// validate max node count
- ValidatorResult nodeCountResult = new ValidatorResult();
+ ValidatorResult.Builder nodeCountResultBuilder = ValidatorResult.newBuilder();
if (maxNodeCount == 0) {
- nodeCountResult.setResult(true);
- nodeCountResult.setErrorDetails(
- "Max node count is not configured for the queue," + "Validation is being skipped");
+ nodeCountResultBuilder.setResult(true)
+ .setErrorDetails(
+ "Max node count is not configured for the queue," + "Validation is being skipped");
logger.info(
"Max node count is not configured for the queue" + "Validation is being skipped");
} else {
if (experimentNodeCount == 0) {
- nodeCountResult.setResult(false);
- nodeCountResult.setErrorDetails(
- "Job Execution node count cannot be zero for queue " + resourceQueueName);
+ nodeCountResultBuilder.setResult(false)
+ .setErrorDetails(
+ "Job Execution node count cannot be zero for queue " + resourceQueueName);
} else {
if (maxNodeCount < experimentNodeCount) {
- nodeCountResult.setResult(false);
- nodeCountResult.setErrorDetails("Job Execution node count " + experimentNodeCount
- + "exceeds the allowable node count"
- + maxNodeCount + "for queue "
- + resourceQueueName);
+ nodeCountResultBuilder.setResult(false)
+ .setErrorDetails("Job Execution node count " + experimentNodeCount
+ + "exceeds the allowable node count"
+ + maxNodeCount + "for queue "
+ + resourceQueueName);
} else {
- nodeCountResult.setResult(true);
- nodeCountResult.setErrorDetails("");
+ nodeCountResultBuilder.setResult(true).setErrorDetails("");
}
}
}
// validate cpu count
- ValidatorResult cpuCountResult = new ValidatorResult();
+ ValidatorResult.Builder cpuCountResultBuilder = ValidatorResult.newBuilder();
if (maxcpuCount == 0) {
- cpuCountResult.setResult(true);
- cpuCountResult.setErrorDetails(
- "Max cpu count is not configured for the queue," + "Validation is being skipped");
+ cpuCountResultBuilder.setResult(true)
+ .setErrorDetails(
+ "Max cpu count is not configured for the queue," + "Validation is being skipped");
logger.info(
"Max cpu count is not configured for the queue" + "Validation is being skipped");
} else {
if (experimentCPUCount == 0) {
- cpuCountResult.setResult(false);
- cpuCountResult.setErrorDetails(
- "Job Execution cpu count cannot be zero for queue " + resourceQueueName);
+ cpuCountResultBuilder.setResult(false)
+ .setErrorDetails(
+ "Job Execution cpu count cannot be zero for queue " + resourceQueueName);
} else {
if (maxcpuCount < experimentCPUCount) {
- cpuCountResult.setResult(false);
- cpuCountResult.setErrorDetails("Job Execution cpu count " + experimentCPUCount
- + "exceeds the allowable cpu count"
- + maxcpuCount + "for queue "
- + resourceQueueName);
+ cpuCountResultBuilder.setResult(false)
+ .setErrorDetails("Job Execution cpu count " + experimentCPUCount
+ + "exceeds the allowable cpu count"
+ + maxcpuCount + "for queue "
+ + resourceQueueName);
} else {
- cpuCountResult.setResult(true);
- cpuCountResult.setErrorDetails("");
+ cpuCountResultBuilder.setResult(true).setErrorDetails("");
}
}
}
- validatorResultList.add(wallTimeResult);
- validatorResultList.add(nodeCountResult);
- validatorResultList.add(cpuCountResult);
+ validatorResultList.add(wallTimeResultBuilder.build());
+ validatorResultList.add(nodeCountResultBuilder.build());
+ validatorResultList.add(cpuCountResultBuilder.build());
}
}
- validatorResultList.add(queueNameResult);
+ validatorResultList.add(queueNameResultBuilder.build());
} else {
// for some compute resources, you dnt need to specify queue names
- ValidatorResult result = new ValidatorResult();
logger.info("There are not queues defined under the compute resource. Airavata assumes this experiment "
+ "does not need a queue name...");
- result.setResult(true);
- validatorResultList.add(result);
+ validatorResultList.add(ValidatorResult.newBuilder().setResult(true).build());
}
}
return validatorResultList;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/DefaultHostScheduler.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/DefaultHostScheduler.java
index 4c79be8ea3..346fbf44f8 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/DefaultHostScheduler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/DefaultHostScheduler.java
@@ -20,7 +20,7 @@
package org.apache.airavata.execution.orchestrator;
import java.util.List;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
public class DefaultHostScheduler implements HostScheduler {
@Override
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ExperimentStatusValidator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ExperimentStatusValidator.java
index 4749cd35b0..bc9021179c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ExperimentStatusValidator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ExperimentStatusValidator.java
@@ -21,11 +21,11 @@ package org.apache.airavata.execution.orchestrator;
import java.util.ArrayList;
import java.util.List;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.error.ValidatorResult;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.status.ExperimentState;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.error.proto.ValidatorResult;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.status.proto.ExperimentState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -35,20 +35,19 @@ public class ExperimentStatusValidator implements JobMetadataValidator {
public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel) {
String error =
"During the validation step experiment status should be CREATED, But this experiment status is : ";
- ValidationResults validationResults = new ValidationResults();
- validationResults.setValidationState(true);
- ValidatorResult validatorResult = new ValidatorResult();
- List<ValidatorResult> validatorResultList = new ArrayList<ValidatorResult>();
- if (!experiment.getExperimentStatus().get(0).getState().equals(ExperimentState.CREATED)) {
- error += experiment.getExperimentStatus().get(0).getState().toString();
+ boolean valid = true;
+ ValidatorResult.Builder validatorResultBuilder = ValidatorResult.newBuilder().setResult(true);
+ if (!experiment.getExperimentStatusList().get(0).getState().equals(ExperimentState.CREATED)) {
+ error += experiment.getExperimentStatusList().get(0).getState().toString();
log.error(error);
- validatorResult.setErrorDetails(error);
- validatorResult.setResult(false);
- validationResults.setValidationState(false);
+ validatorResultBuilder.setErrorDetails(error).setResult(false);
+ valid = false;
}
- validatorResult.setResult(true);
- validatorResultList.add(validatorResult);
- validationResults.setValidationResultList(validatorResultList);
- return validationResults;
+ List<ValidatorResult> validatorResultList = new ArrayList<ValidatorResult>();
+ validatorResultList.add(validatorResultBuilder.build());
+ return ValidationResults.newBuilder()
+ .setValidationState(valid)
+ .addAllValidationResultList(validatorResultList)
+ .build();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GFACPassiveJobSubmitter.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GFACPassiveJobSubmitter.java
index 1da3be2c08..5c976e4bcc 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GFACPassiveJobSubmitter.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GFACPassiveJobSubmitter.java
@@ -28,9 +28,9 @@ import org.apache.airavata.messaging.service.MessageContext;
import org.apache.airavata.messaging.service.MessagingFactory;
import org.apache.airavata.messaging.service.Publisher;
import org.apache.airavata.messaging.service.Type;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.messaging.event.ProcessSubmitEvent;
-import org.apache.airavata.model.messaging.event.ProcessTerminateEvent;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
+import org.apache.airavata.model.messaging.event.proto.ProcessSubmitEvent;
+import org.apache.airavata.model.messaging.event.proto.ProcessTerminateEvent;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.slf4j.Logger;
@@ -81,7 +81,12 @@ public class GFACPassiveJobSubmitter implements JobSubmitter, Watcher {
if (gatewayId == null || gatewayId.isEmpty()) {
gatewayId = ServerSettings.getDefaultUserGateway();
}
- ProcessSubmitEvent processSubmitEvent = new ProcessSubmitEvent(processId, gatewayId, experimentId, tokenId);
+ ProcessSubmitEvent processSubmitEvent = ProcessSubmitEvent.newBuilder()
+ .setProcessId(processId)
+ .setGatewayId(gatewayId)
+ .setExperimentId(experimentId)
+ .setTokenId(tokenId)
+ .build();
MessageContext messageContext = new MessageContext(
processSubmitEvent,
MessageType.LAUNCHPROCESS,
@@ -118,7 +123,11 @@ public class GFACPassiveJobSubmitter implements JobSubmitter, Watcher {
gatewayId = ServerSettings.getDefaultUserGateway();
}
- ProcessTerminateEvent processTerminateEvent = new ProcessTerminateEvent(processId, gatewayId, tokenId);
+ ProcessTerminateEvent processTerminateEvent = ProcessTerminateEvent.newBuilder()
+ .setProcessId(processId)
+ .setGatewayId(gatewayId)
+ .setTokenId(tokenId)
+ .build();
MessageContext messageContext = new MessageContext(
processTerminateEvent,
MessageType.TERMINATEPROCESS,
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GroupResourceProfileValidator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GroupResourceProfileValidator.java
index 69e3b3658d..a6ad4609eb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GroupResourceProfileValidator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/GroupResourceProfileValidator.java
@@ -22,16 +22,16 @@ package org.apache.airavata.execution.orchestrator;
import java.util.ArrayList;
import java.util.List;
import org.apache.airavata.execution.scheduler.Utils;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.BatchQueueResourcePolicy;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourcePolicy;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.error.ValidatorResult;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.UserConfigurationDataModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.BatchQueueResourcePolicy;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourcePolicy;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.error.proto.ValidatorResult;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -47,25 +47,27 @@ public class GroupResourceProfileValidator implements JobMetadataValidator {
@Override
public ValidationResults validate(ExperimentModel experiment, ProcessModel processModel) {
- ValidationResults validationResults = new ValidationResults();
- validationResults.setValidationState(true);
+ boolean valid = true;
+ List<ValidatorResult> validatorResultList;
try {
- List<ValidatorResult> validatorResultList = validateGroupResourceProfile(experiment, processModel);
+ validatorResultList = validateGroupResourceProfile(experiment, processModel);
for (ValidatorResult result : validatorResultList) {
- if (!result.isResult()) {
- validationResults.setValidationState(false);
+ if (!result.getResult()) {
+ valid = false;
break;
}
}
- validationResults.setValidationResultList(validatorResultList);
- } catch (TException e) {
+ } catch (Exception e) {
throw new RuntimeException("Error while validating Group Resource Profile", e);
}
- return validationResults;
+ return ValidationResults.newBuilder()
+ .setValidationState(valid)
+ .addAllValidationResultList(validatorResultList)
+ .build();
}
private List<ValidatorResult> validateGroupResourceProfile(ExperimentModel experiment, ProcessModel processModel)
- throws TException {
+ throws Exception {
List<ValidatorResult> validatorResultList = new ArrayList<ValidatorResult>();
UserConfigurationDataModel userConfigurationData = experiment.getUserConfigurationData();
ComputationalResourceSchedulingModel computationalResourceScheduling =
@@ -89,8 +91,7 @@ public class GroupResourceProfileValidator implements JobMetadataValidator {
.get();
if (groupComputeResourcePolicy != null) {
- ValidatorResult queueNameResult = new ValidatorResult();
- List<String> ComputeResourcePolicyBatchQueues = groupComputeResourcePolicy.getAllowedBatchQueues();
+ List<String> ComputeResourcePolicyBatchQueues = groupComputeResourcePolicy.getAllowedBatchQueuesList();
String queueName = computationalResourceScheduling.getQueueName().trim();
if (ComputeResourcePolicyBatchQueues.contains(queueName)) {
BatchQueueResourcePolicy batchQueueResourcePolicy = batchQueueResourcePolicies.stream()
@@ -103,23 +104,20 @@ public class GroupResourceProfileValidator implements JobMetadataValidator {
validatorResultList.addAll(
batchQueuePolicyValidate(computationalResourceScheduling, batchQueueResourcePolicy));
} else {
- ValidatorResult batchQueuePolicyResult = new ValidatorResult();
logger.info(
"There is no batch queue resource policy specified for the group resource profile and queue name");
- batchQueuePolicyResult.setResult(true);
- validatorResultList.add(batchQueuePolicyResult);
+ validatorResultList.add(ValidatorResult.newBuilder().setResult(true).build());
}
} else {
- queueNameResult.setResult(false);
- queueNameResult.setErrorDetails("The specified queue " + queueName
- + " does not exist in the list of allowed queues for the group resource profile.");
- validatorResultList.add(queueNameResult);
+ validatorResultList.add(ValidatorResult.newBuilder()
+ .setResult(false)
+ .setErrorDetails("The specified queue " + queueName
+ + " does not exist in the list of allowed queues for the group resource profile.")
+ .build());
}
} else {
- ValidatorResult result = new ValidatorResult();
logger.info("There is no compute resource policy specified for the group resource profile");
- result.setResult(true);
- validatorResultList.add(result);
+ validatorResultList.add(ValidatorResult.newBuilder().setResult(true).build());
// verify if batchQueueResourcePolicy exists without computeResourcePolicy
if (batchQueueResourcePolicies != null && !batchQueueResourcePolicies.isEmpty()) {
@@ -135,11 +133,9 @@ public class GroupResourceProfileValidator implements JobMetadataValidator {
validatorResultList.addAll(
batchQueuePolicyValidate(computationalResourceScheduling, batchQueueResourcePolicy));
} else {
- ValidatorResult batchQueuePolicyResult = new ValidatorResult();
logger.info(
"There is no batch queue resource policy specified for the group resource profile and queue name");
- batchQueuePolicyResult.setResult(true);
- validatorResultList.add(batchQueuePolicyResult);
+ validatorResultList.add(ValidatorResult.newBuilder().setResult(true).build());
}
} else {
logger.info("There is no batch resource policy specified for the group resource profile");
@@ -156,43 +152,40 @@ public class GroupResourceProfileValidator implements JobMetadataValidator {
int experimentNodeCount = computationalResourceScheduling.getNodeCount();
int experimentCPUCount = computationalResourceScheduling.getTotalCPUCount();
- ValidatorResult wallTimeResult = new ValidatorResult();
-
+ ValidatorResult wallTimeResult;
if (experimentWallTimeLimit > batchQueueResourcePolicy.getMaxAllowedWalltime()) {
- wallTimeResult.setResult(false);
- wallTimeResult.setErrorDetails("Job Execution walltime " + experimentWallTimeLimit
- + " exceeds the allowable walltime for the group resource profile "
- + batchQueueResourcePolicy.getMaxAllowedWalltime() + " for queue "
- + batchQueueResourcePolicy.getQueuename());
+ wallTimeResult = ValidatorResult.newBuilder().setResult(false)
+ .setErrorDetails("Job Execution walltime " + experimentWallTimeLimit
+ + " exceeds the allowable walltime for the group resource profile "
+ + batchQueueResourcePolicy.getMaxAllowedWalltime() + " for queue "
+ + batchQueueResourcePolicy.getQueuename())
+ .build();
} else {
- wallTimeResult.setResult(true);
- wallTimeResult.setErrorDetails("");
+ wallTimeResult = ValidatorResult.newBuilder().setResult(true).build();
}
- ValidatorResult nodeCountResult = new ValidatorResult();
-
+ ValidatorResult nodeCountResult;
if (experimentNodeCount > batchQueueResourcePolicy.getMaxAllowedNodes()) {
- nodeCountResult.setResult(false);
- nodeCountResult.setErrorDetails("Job Execution node count " + experimentNodeCount
- + " exceeds the allowable node count for the group resource profile "
- + batchQueueResourcePolicy.getMaxAllowedNodes() + " for queue "
- + batchQueueResourcePolicy.getQueuename());
+ nodeCountResult = ValidatorResult.newBuilder().setResult(false)
+ .setErrorDetails("Job Execution node count " + experimentNodeCount
+ + " exceeds the allowable node count for the group resource profile "
+ + batchQueueResourcePolicy.getMaxAllowedNodes() + " for queue "
+ + batchQueueResourcePolicy.getQueuename())
+ .build();
} else {
- nodeCountResult.setResult(true);
- nodeCountResult.setErrorDetails("");
+ nodeCountResult = ValidatorResult.newBuilder().setResult(true).build();
}
- ValidatorResult cpuCountResult = new ValidatorResult();
-
+ ValidatorResult cpuCountResult;
if (experimentCPUCount > batchQueueResourcePolicy.getMaxAllowedCores()) {
- cpuCountResult.setResult(false);
- cpuCountResult.setErrorDetails("Job Execution cpu count " + experimentCPUCount
- + " exceeds the allowable cpu count for the group resource profile "
- + batchQueueResourcePolicy.getMaxAllowedCores() + " for queue "
- + batchQueueResourcePolicy.getQueuename());
+ cpuCountResult = ValidatorResult.newBuilder().setResult(false)
+ .setErrorDetails("Job Execution cpu count " + experimentCPUCount
+ + " exceeds the allowable cpu count for the group resource profile "
+ + batchQueueResourcePolicy.getMaxAllowedCores() + " for queue "
+ + batchQueueResourcePolicy.getQueuename())
+ .build();
} else {
- cpuCountResult.setResult(true);
- cpuCountResult.setErrorDetails("");
+ cpuCountResult = ValidatorResult.newBuilder().setResult(true).build();
}
batchQueuevalidatorResultList.add(wallTimeResult);
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/HostScheduler.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/HostScheduler.java
index 71b651f750..fc0e06717f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/HostScheduler.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/HostScheduler.java
@@ -20,7 +20,7 @@
package org.apache.airavata.execution.orchestrator;
import java.util.List;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
public interface HostScheduler {
/**
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/JobMetadataValidator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/JobMetadataValidator.java
index 723b131450..6502000bd6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/JobMetadataValidator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/JobMetadataValidator.java
@@ -19,9 +19,9 @@
*/
package org.apache.airavata.execution.orchestrator;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.process.ProcessModel;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
/**
* This is the interface to implement a validation logic, users can implement their validation
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/Orchestrator.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/Orchestrator.java
index 1d3bb5e876..a298fef998 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/Orchestrator.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/Orchestrator.java
@@ -19,10 +19,9 @@
*/
package org.apache.airavata.execution.orchestrator;
-import org.apache.airavata.model.error.LaunchValidationException;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.process.ProcessModel;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
/*
This is the interface for orchestrator functionality exposed to the out side of the
@@ -39,7 +38,7 @@ public interface Orchestrator {
* @throws OrchestratorException
*/
ValidationResults validateExperiment(ExperimentModel experiment)
- throws OrchestratorException, LaunchValidationException;
+ throws OrchestratorException;
/**
* This method can be used to run all custom validators plugged in to the orchestrator and make
@@ -51,7 +50,7 @@ public interface Orchestrator {
* @throws OrchestratorException
*/
ValidationResults validateProcess(ExperimentModel experiment, ProcessModel processModel)
- throws OrchestratorException, LaunchValidationException;
+ throws OrchestratorException;
/**
* After creating the experiment Data user have the
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java
index 0a073da432..895b47c184 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientFactory.java
@@ -19,7 +19,7 @@
*/
package org.apache.airavata.execution.orchestrator;
-import org.apache.airavata.model.error.AiravataClientException;
+import org.apache.airavata.model.error.proto.AiravataClientException;
import org.apache.airavata.orchestrator.cpi.OrchestratorService;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TProtocol;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java
index 9579ff3789..522b0c8301 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorClientSample.java
@@ -27,14 +27,14 @@ package org.apache.airavata.execution.orchestrator;
import java.util.ArrayList;
import java.util.List;
import org.apache.airavata.execution.util.ExperimentModelUtil;
-import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.UserConfigurationDataModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.application.io.proto.DataType;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.orchestrator.cpi.OrchestratorService;
-import org.apache.thrift.TException;
+
public class OrchestratorClientSample {
// private static DocumentCreator documentCreator;
@@ -86,17 +86,19 @@ public class OrchestratorClientSample {
Thread thread = new Thread() {
public void run() {
List<InputDataObjectType> exInputs = new ArrayList<InputDataObjectType>();
- InputDataObjectType input = new InputDataObjectType();
- input.setName("echo_input");
- input.setType(DataType.STRING);
- input.setValue("echo_output=Hello World");
+ InputDataObjectType input = InputDataObjectType.newBuilder()
+ .setName("echo_input")
+ .setType(DataType.STRING)
+ .setValue("echo_output=Hello World")
+ .build();
exInputs.add(input);
List<OutputDataObjectType> exOut = new ArrayList<OutputDataObjectType>();
- OutputDataObjectType output = new OutputDataObjectType();
- output.setName("echo_output");
- output.setType(DataType.STRING);
- output.setValue("");
+ OutputDataObjectType output = OutputDataObjectType.newBuilder()
+ .setName("echo_output")
+ .setType(DataType.STRING)
+ .setValue("")
+ .build();
exOut.add(output);
ExperimentModel simpleExperiment = ExperimentModelUtil.createSimpleExperiment(
@@ -107,15 +109,17 @@ public class OrchestratorClientSample {
"SimpleEcho2",
"SimpleEcho2",
exInputs);
- simpleExperiment.setExperimentOutputs(exOut);
+ simpleExperiment = simpleExperiment.toBuilder()
+ .addAllExperimentOutputs(exOut).build();
ComputationalResourceSchedulingModel scheduling =
ExperimentModelUtil.createComputationResourceScheduling(
- "trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0);
- scheduling.setResourceHostId("gsissh-trestles");
- UserConfigurationDataModel userConfigurationDataModel = new UserConfigurationDataModel();
- userConfigurationDataModel.setComputationalResourceScheduling(scheduling);
- simpleExperiment.setUserConfigurationData(userConfigurationDataModel);
+ "trestles.sdsc.edu", 1, 1, 1, "normal", 0, 0)
+ .toBuilder().setResourceHostId("gsissh-trestles").build();
+ UserConfigurationDataModel userConfigurationDataModel = UserConfigurationDataModel.newBuilder()
+ .setComputationalResourceScheduling(scheduling).build();
+ simpleExperiment = simpleExperiment.toBuilder()
+ .setUserConfigurationData(userConfigurationDataModel).build();
String expId = null;
try {
// expId = (String) registry.add(ParentDataType.EXPERIMENT,
@@ -126,7 +130,7 @@ public class OrchestratorClientSample {
try {
orchestratorClient.launchExperiment(expId, "airavataToken");
- } catch (TException e) {
+ } catch (Exception e) {
throw new RuntimeException("Error while storing experiment details", e);
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorServerUtils.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorServerUtils.java
index 5a19f7d36c..7961173e4d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorServerUtils.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorServerUtils.java
@@ -24,12 +24,12 @@ import org.apache.airavata.common.util.AiravataUtils;
import org.apache.airavata.execution.scheduler.Utils;
import org.apache.airavata.messaging.service.MessageContext;
import org.apache.airavata.messaging.service.Publisher;
-import org.apache.airavata.model.messaging.event.ExperimentStatusChangeEvent;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.status.ExperimentStatus;
+import org.apache.airavata.model.messaging.event.proto.ExperimentStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.status.proto.ExperimentStatus;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,12 +37,15 @@ public class OrchestratorServerUtils {
private static final Logger log = LoggerFactory.getLogger(OrchestratorUtils.class);
public static void updateAndPublishExperimentStatus(
- String experimentId, ExperimentStatus status, Publisher publisher, String gatewayId) throws TException {
+ String experimentId, ExperimentStatus status, Publisher publisher, String gatewayId) throws Exception {
try {
RegistryService.Iface registryHandler = Utils.getRegistryHandler();
registryHandler.updateExperimentStatus(status, experimentId);
- ExperimentStatusChangeEvent event =
- new ExperimentStatusChangeEvent(status.getState(), experimentId, gatewayId);
+ ExperimentStatusChangeEvent event = ExperimentStatusChangeEvent.newBuilder()
+ .setState(status.getState())
+ .setExperimentId(experimentId)
+ .setGatewayId(gatewayId)
+ .build();
String messageId = AiravataUtils.getId("EXPERIMENT");
MessageContext messageContext = new MessageContext(event, MessageType.EXPERIMENT, messageId, gatewayId);
messageContext.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
@@ -53,11 +56,11 @@ public class OrchestratorServerUtils {
}
}
- public static ExperimentStatus getExperimentStatus(String experimentId) throws TException {
+ public static ExperimentStatus getExperimentStatus(String experimentId) throws Exception {
return Utils.getRegistryHandler().getExperimentStatus(experimentId);
}
- public static ProcessModel getProcess(String processId) throws TException {
+ public static ProcessModel getProcess(String processId) throws Exception {
return Utils.getRegistryHandler().getProcess(processId);
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorUtils.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorUtils.java
index 44e7f58698..c303c67349 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorUtils.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/OrchestratorUtils.java
@@ -31,25 +31,25 @@ import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.credential.repository.CredentialReader;
import org.apache.airavata.credential.repository.CredentialReaderImpl;
import org.apache.airavata.execution.scheduler.Utils;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.CloudJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.UnicoreJobSubmission;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.data.movement.DataMovementInterface;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
-import org.apache.airavata.model.data.movement.SCPDataMovement;
-import org.apache.airavata.model.data.movement.SecurityProtocol;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.CloudJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.UnicoreJobSubmission;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.data.movement.proto.DataMovementInterface;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
+import org.apache.airavata.model.data.movement.proto.SCPDataMovement;
+import org.apache.airavata.model.data.movement.proto.SecurityProtocol;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,17 +74,17 @@ public class OrchestratorUtils {
}
public static JobSubmissionProtocol getPreferredJobSubmissionProtocol(ProcessModel model, String gatewayId)
- throws TException, OrchestratorException {
+ throws Exception, OrchestratorException {
return getPreferredJobSubmissionInterface(model, gatewayId).getJobSubmissionProtocol();
}
public static GroupComputeResourcePreference getGroupComputeResourcePreference(ProcessModel model)
- throws TException {
+ throws Exception {
return getRegistryHandler()
.getGroupComputeResourcePreference(model.getComputeResourceId(), model.getGroupResourceProfileId());
}
- public static String getApplicationInterfaceName(ProcessModel model) throws TException, OrchestratorException {
+ public static String getApplicationInterfaceName(ProcessModel model) throws Exception, OrchestratorException {
try {
ApplicationInterfaceDescription appInterface =
getRegistryHandler().getApplicationInterface(model.getApplicationInterfaceId());
@@ -95,7 +95,7 @@ public class OrchestratorUtils {
}
public static DataMovementProtocol getPreferredDataMovementProtocol(ProcessModel model, String gatewayId)
- throws TException, OrchestratorException {
+ throws Exception, OrchestratorException {
return getPreferredDataMovementInterface(model, gatewayId).getDataMovementProtocol();
}
@@ -111,12 +111,12 @@ public class OrchestratorUtils {
}
public static String getLoginUserName(ProcessModel processModel, String gatewayId)
- throws AiravataException, TException {
+ throws AiravataException, Exception {
try {
RegistryService.Iface registryHandler = getRegistryHandler();
GroupComputeResourcePreference computeResourcePreference = getGroupComputeResourcePreference(processModel);
ComputationalResourceSchedulingModel processResourceSchedule = processModel.getProcessResourceSchedule();
- if (processModel.isUseUserCRPref()) {
+ if (processModel.getUseUserCRPref()) {
UserComputeResourcePreference userComputeResourcePreference =
registryHandler.getUserComputeResourcePreference(
processModel.getUserName(), gatewayId, processModel.getComputeResourceId());
@@ -154,14 +154,14 @@ public class OrchestratorUtils {
}
public static String getScratchLocation(ProcessModel processModel, String gatewayId)
- throws AiravataException, TException {
+ throws AiravataException, Exception {
try {
RegistryService.Iface registryHandler = getRegistryHandler();
GroupComputeResourcePreference computeResourcePreference = getGroupComputeResourcePreference(processModel);
ComputationalResourceSchedulingModel processResourceSchedule = processModel.getProcessResourceSchedule();
String scratchLocation = computeResourcePreference.getScratchLocation();
- if (processModel.isUseUserCRPref()) {
+ if (processModel.getUseUserCRPref()) {
UserComputeResourcePreference userComputeResourcePreference =
registryHandler.getUserComputeResourcePreference(
processModel.getUserName(), gatewayId, processModel.getComputeResourceId());
@@ -204,7 +204,7 @@ public class OrchestratorUtils {
String resourceHostId = processModel.getComputeResourceId();
ComputeResourceDescription resourceDescription =
getRegistryHandler().getComputeResource(resourceHostId);
- List<JobSubmissionInterface> jobSubmissionInterfaces = resourceDescription.getJobSubmissionInterfaces();
+ List<JobSubmissionInterface> jobSubmissionInterfaces = resourceDescription.getJobSubmissionInterfacesList();
if (jobSubmissionInterfaces != null && !jobSubmissionInterfaces.isEmpty()) {
Collections.sort(
jobSubmissionInterfaces, Comparator.comparingInt(JobSubmissionInterface::getPriorityOrder));
@@ -224,7 +224,7 @@ public class OrchestratorUtils {
String resourceHostId = processModel.getComputeResourceId();
ComputeResourceDescription resourceDescription =
getRegistryHandler().getComputeResource(resourceHostId);
- List<DataMovementInterface> dataMovementInterfaces = resourceDescription.getDataMovementInterfaces();
+ List<DataMovementInterface> dataMovementInterfaces = resourceDescription.getDataMovementInterfacesList();
if (dataMovementInterfaces != null && !dataMovementInterfaces.isEmpty()) {
Collections.sort(
dataMovementInterfaces, Comparator.comparingInt(DataMovementInterface::getPriorityOrder));
@@ -239,7 +239,7 @@ public class OrchestratorUtils {
}
public static int getDataMovementPort(ProcessModel processModel, String gatewayId)
- throws TException, ApplicationSettingsException, OrchestratorException {
+ throws Exception, ApplicationSettingsException, OrchestratorException {
try {
DataMovementProtocol protocol = getPreferredDataMovementProtocol(processModel, gatewayId);
DataMovementInterface dataMovementInterface = getPreferredDataMovementInterface(processModel, gatewayId);
@@ -257,7 +257,7 @@ public class OrchestratorUtils {
}
public static SecurityProtocol getSecurityProtocol(ProcessModel processModel, String gatewayId)
- throws TException, ApplicationSettingsException, OrchestratorException {
+ throws Exception, ApplicationSettingsException, OrchestratorException {
try {
JobSubmissionProtocol submissionProtocol = getPreferredJobSubmissionProtocol(processModel, gatewayId);
JobSubmissionInterface jobSubmissionInterface = getPreferredJobSubmissionInterface(processModel, gatewayId);
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ParserWorkflowManager.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ParserWorkflowManager.java
index 7a14f563bf..5ba5b29f8d 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ParserWorkflowManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/ParserWorkflowManager.java
@@ -31,16 +31,16 @@ import org.apache.airavata.execution.task.ParsingTaskOutput;
import org.apache.airavata.execution.task.ParsingTaskOutputs;
import org.apache.airavata.execution.task.ProcessCompletionMessage;
import org.apache.airavata.execution.task.ProcessCompletionMessageDeserializer;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.parser.*;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.process.ProcessModel;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.parser.proto.*;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.TopicPartition;
import org.apache.kafka.common.serialization.StringDeserializer;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -244,7 +244,7 @@ public class ParserWorkflowManager implements IServer {
try {
parsingTask.setGroupResourceProfileId(
registryHandler.getProcess(completionMessage.getProcessId()).getGroupResourceProfileId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed while fetching process model for process id " + completionMessage.getProcessId());
throw new Exception(
"Failed while fetching process model for process id " + completionMessage.getProcessId());
@@ -274,12 +274,12 @@ public class ParserWorkflowManager implements IServer {
ExperimentModel experiment = registryHandler.getExperiment(completionMessage.getExperimentId());
Optional<OutputDataObjectType> expOutputData;
if (applicationOutputName.contains("*")) {
- expOutputData = experiment.getExperimentOutputs().stream()
+ expOutputData = experiment.getExperimentOutputsList().stream()
.filter(outputDataObjectType ->
isWildcardMatch(outputDataObjectType.getName(), applicationOutputName))
.findFirst();
} else {
- expOutputData = experiment.getExperimentOutputs().stream()
+ expOutputData = experiment.getExperimentOutputsList().stream()
.filter(outputDataObjectType ->
outputDataObjectType.getName().equals(applicationOutputName))
.findFirst();
@@ -289,7 +289,7 @@ public class ParserWorkflowManager implements IServer {
} else {
throw new Exception("Could not find an experiment output with name " + applicationOutputName);
}
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed while fetching experiment " + completionMessage.getExperimentId());
throw new Exception("Failed while fetching experiment " + completionMessage.getExperimentId());
}
@@ -397,7 +397,7 @@ public class ParserWorkflowManager implements IServer {
parsingTask.setGroupResourceProfileId(registryHandler
.getProcess(completionMessage.getProcessId())
.getGroupResourceProfileId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed while fetching process model for process id " + completionMessage.getProcessId());
throw new Exception(
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PostWorkflowManager.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PostWorkflowManager.java
index f0ddd9af1f..628de812db 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PostWorkflowManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PostWorkflowManager.java
@@ -31,20 +31,20 @@ import org.apache.airavata.execution.monitor.JobStateValidator;
import org.apache.airavata.execution.monitor.JobStatusResult;
import org.apache.airavata.execution.monitor.JobStatusResultDeserializer;
import org.apache.airavata.messaging.service.MessageContext;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.messaging.event.JobIdentifier;
-import org.apache.airavata.model.messaging.event.JobStatusChangeEvent;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.status.JobState;
-import org.apache.airavata.model.status.JobStatus;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.task.DataStagingTaskModel;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.task.TaskTypes;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.messaging.event.proto.JobIdentifier;
+import org.apache.airavata.model.messaging.event.proto.JobStatusChangeEvent;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.status.proto.JobState;
+import org.apache.airavata.model.status.proto.JobStatus;
+import org.apache.airavata.model.status.proto.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessStatus;
+import org.apache.airavata.model.task.proto.DataStagingTaskModel;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.task.proto.TaskTypes;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.kafka.clients.consumer.*;
import org.apache.kafka.common.serialization.StringDeserializer;
@@ -127,10 +127,10 @@ public class PostWorkflowManager implements IServer {
var processState = processStatus.getState();
if (experimentModel != null) {
- jobModel.getJobStatuses()
+ jobModel.getJobStatusesList()
.sort(Comparator.comparingLong(JobStatus::getTimeOfStateChange)
.reversed());
- JobState currentJobStatus = jobModel.getJobStatuses().get(0).getJobState();
+ JobState currentJobStatus = jobModel.getJobStatusesList().get(0).getJobState();
logger.info("Last known state of job {} is {}", jobId, jobName);
if (!JobStateValidator.isValid(currentJobStatus, jobState)) {
@@ -224,7 +224,7 @@ public class PostWorkflowManager implements IServer {
}
String taskDag = processModel.getTaskDag();
- List<TaskModel> taskList = processModel.getTasks();
+ List<TaskModel> taskList = processModel.getTasksList();
String[] taskIds = taskDag.split(",");
final List<AiravataTask> allTasks = new ArrayList<>();
@@ -385,17 +385,12 @@ public class PostWorkflowManager implements IServer {
throws Exception {
try {
- JobStatus jobStatus = new JobStatus();
- jobStatus.setReason(jobState.name());
- jobStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
- jobStatus.setJobState(jobState);
-
- if (jobStatus.getTimeOfStateChange() == 0 || jobStatus.getTimeOfStateChange() > 0) {
- jobStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- } else {
- jobStatus.setTimeOfStateChange(jobStatus.getTimeOfStateChange());
- }
+ long now = AiravataUtils.getCurrentTimestamp().getTime();
+ JobStatus jobStatus = JobStatus.newBuilder()
+ .setReason(jobState.name())
+ .setTimeOfStateChange(now)
+ .setJobState(jobState)
+ .build();
try {
wfManager.getRegistryHandler().addJobStatus(jobStatus, taskId, jobId);
@@ -403,9 +398,12 @@ public class PostWorkflowManager implements IServer {
logger.error("Failed to add job status " + jobId, e);
}
- JobIdentifier identifier = new JobIdentifier(jobId, taskId, processId, experimentId, gateway);
+ JobIdentifier identifier = JobIdentifier.newBuilder()
+ .setJobId(jobId).setTaskId(taskId).setProcessId(processId)
+ .setExperimentId(experimentId).setGatewayId(gateway).build();
- JobStatusChangeEvent jobStatusChangeEvent = new JobStatusChangeEvent(jobStatus.getJobState(), identifier);
+ JobStatusChangeEvent jobStatusChangeEvent = JobStatusChangeEvent.newBuilder()
+ .setJobState(jobStatus.getJobState()).setJobIdentity(identifier).build();
MessageContext msgCtx = new MessageContext(
jobStatusChangeEvent, MessageType.JOB, AiravataUtils.getId(MessageType.JOB.name()), gateway);
msgCtx.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PreWorkflowManager.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PreWorkflowManager.java
index d11c1560a6..5c077b60a4 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PreWorkflowManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/PreWorkflowManager.java
@@ -40,21 +40,21 @@ import org.apache.airavata.messaging.service.MessageHandler;
import org.apache.airavata.messaging.service.MessagingFactory;
import org.apache.airavata.messaging.service.Subscriber;
import org.apache.airavata.messaging.service.Type;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.messaging.event.ProcessSubmitEvent;
-import org.apache.airavata.model.messaging.event.ProcessTerminateEvent;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.process.ProcessWorkflow;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.task.TaskTypes;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
+import org.apache.airavata.model.messaging.event.proto.ProcessSubmitEvent;
+import org.apache.airavata.model.messaging.event.proto.ProcessTerminateEvent;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.process.proto.ProcessWorkflow;
+import org.apache.airavata.model.status.proto.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessStatus;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.task.proto.TaskTypes;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.thrift.TBase;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -142,7 +142,7 @@ public class PreWorkflowManager implements IServer {
}
String taskDag = processModel.getTaskDag();
- List<TaskModel> taskList = processModel.getTasks();
+ List<TaskModel> taskList = processModel.getTasksList();
boolean intermediateTransfer =
taskList.stream().anyMatch(task -> task.getTaskType() == TaskTypes.OUTPUT_FETCHING);
@@ -193,7 +193,7 @@ public class PreWorkflowManager implements IServer {
airavataTask.setTaskId(taskModel.getTaskId());
airavataTask.setRetryCount(taskModel.getMaxRetry());
airavataTask.setAutoSchedule(
- experimentModel.getUserConfigurationData().isAiravataAutoSchedule());
+ experimentModel.getUserConfigurationData().getAiravataAutoSchedule());
if (allTasks.size() > 0) {
allTasks.get(allTasks.size() - 1)
.setNextTask(new OutPort(airavataTask.getTaskId(), airavataTask));
@@ -331,7 +331,7 @@ public class PreWorkflowManager implements IServer {
try {
byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
ThriftUtils.createThriftFromBytes(bytes, event);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed to fetch process submit event", e);
subscriber.sendAck(messageContext.getDeliveryTag());
}
@@ -351,9 +351,10 @@ public class PreWorkflowManager implements IServer {
+ " of experiment " + experimentId + " in gateway " + gateway);
// updating the process status
- ProcessStatus status = new ProcessStatus();
- status.setState(ProcessState.STARTED);
- status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
+ ProcessStatus status = ProcessStatus.newBuilder()
+ .setState(ProcessState.STARTED)
+ .setTimeOfStateChange(Calendar.getInstance().getTimeInMillis())
+ .build();
wfManager.publishProcessStatus(processId, experimentId, gateway, ProcessState.STARTED);
subscriber.sendAck(messageContext.getDeliveryTag());
} catch (Exception e) {
@@ -369,7 +370,7 @@ public class PreWorkflowManager implements IServer {
try {
byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
ThriftUtils.createThriftFromBytes(bytes, event);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed to fetch process cancellation event", e);
subscriber.sendAck(messageContext.getDeliveryTag());
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/SimpleOrchestratorImpl.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/SimpleOrchestratorImpl.java
index e95849351c..19abce89a9 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/SimpleOrchestratorImpl.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/SimpleOrchestratorImpl.java
@@ -32,38 +32,37 @@ import java.util.Optional;
import java.util.concurrent.ExecutorService;
import org.apache.airavata.common.exception.AiravataException;
import org.apache.airavata.common.util.AiravataUtils;
-import org.apache.airavata.common.util.ThriftUtils;
import org.apache.airavata.execution.util.ExperimentModelUtil;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.MonitorMode;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
-import org.apache.airavata.model.error.LaunchValidationException;
-import org.apache.airavata.model.error.ValidationResults;
-import org.apache.airavata.model.error.ValidatorResult;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.TaskState;
-import org.apache.airavata.model.status.TaskStatus;
-import org.apache.airavata.model.task.DataStageType;
-import org.apache.airavata.model.task.DataStagingTaskModel;
-import org.apache.airavata.model.task.EnvironmentSetupTaskModel;
-import org.apache.airavata.model.task.JobSubmissionTaskModel;
-import org.apache.airavata.model.task.MonitorTaskModel;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.task.TaskTypes;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.MonitorMode;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.application.io.proto.DataType;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
+import org.apache.airavata.model.error.proto.LaunchValidationException;
+import org.apache.airavata.model.error.proto.ValidationResults;
+import org.apache.airavata.model.error.proto.ValidatorResult;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.status.proto.TaskState;
+import org.apache.airavata.model.status.proto.TaskStatus;
+import org.apache.airavata.model.task.proto.DataStageType;
+import org.apache.airavata.model.task.proto.DataStagingTaskModel;
+import org.apache.airavata.model.task.proto.EnvironmentSetupTaskModel;
+import org.apache.airavata.model.task.proto.JobSubmissionTaskModel;
+import org.apache.airavata.model.task.proto.MonitorTaskModel;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.task.proto.TaskTypes;
import org.apache.airavata.registry.api.RegistryService;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -74,7 +73,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
// this is going to be null unless the thread count is 0
private JobSubmitter jobSubmitter = null;
- public SimpleOrchestratorImpl() throws OrchestratorException, TException {
+ public SimpleOrchestratorImpl() throws OrchestratorException, Exception {
try {
try {
// We are only going to use GFacPassiveJobSubmitter
@@ -101,10 +100,9 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
}
public ValidationResults validateExperiment(ExperimentModel experiment)
- throws OrchestratorException, LaunchValidationException {
- ValidationResults validationResults = new ValidationResults();
- validationResults.setValidationState(
- true); // initially making it to success, if atleast one failed them simply mark it failed.
+ throws OrchestratorException {
+ ValidationResults.Builder validationResultsBuilder = ValidationResults.newBuilder()
+ .setValidationState(true); // initially making it to success, if atleast one failed them simply mark it failed.
String errorMsg = "Validation Errors : ";
if (this.orchestratorConfiguration.isEnableValidation()) {
List<String> validatorClasses =
@@ -114,64 +112,67 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
Class<? extends JobMetadataValidator> vClass =
Class.forName(validator.trim()).asSubclass(JobMetadataValidator.class);
JobMetadataValidator jobMetadataValidator = vClass.newInstance();
- validationResults = jobMetadataValidator.validate(experiment, null);
- if (validationResults.isValidationState()) {
+ ValidationResults validationResults = jobMetadataValidator.validate(experiment, null);
+ if (validationResults.getValidationState()) {
logger.info("Validation of " + validator + " is SUCCESSFUL");
} else {
- List<ValidatorResult> validationResultList = validationResults.getValidationResultList();
+ List<ValidatorResult> validationResultList = validationResults.getValidationResultListList();
for (ValidatorResult result : validationResultList) {
- if (!result.isResult()) {
+ if (!result.getResult()) {
String validationError = result.getErrorDetails();
- if (validationError != null) {
+ if (!validationError.isEmpty()) {
errorMsg += validationError + " ";
}
}
}
logger.error("Validation of " + validator + " for experiment Id " + experiment.getExperimentId()
+ " is FAILED:[error]. " + errorMsg);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false)
+ .addAllValidationResultList(validationResults.getValidationResultListList());
try {
- ErrorModel details = new ErrorModel();
- details.setActualErrorMessage(errorMsg);
- details.setCreationTime(Calendar.getInstance().getTimeInMillis());
+ ErrorModel details = ErrorModel.newBuilder()
+ .setActualErrorMessage(errorMsg)
+ .setCreationTime(Calendar.getInstance().getTimeInMillis())
+ .build();
final RegistryService.Iface registryClient = getRegistryHandler();
registryClient.addErrors(
OrchestratorConstants.EXPERIMENT_ERROR, details, experiment.getExperimentId());
- } catch (TException e) {
+ } catch (Exception e) {
throw new RuntimeException("Error while saving error details to registry", e);
}
break;
}
} catch (ClassNotFoundException e) {
logger.error("Error loading the validation class: ", validator, e);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false);
} catch (InstantiationException e) {
logger.error("Error loading the validation class: ", validator, e);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false);
} catch (IllegalAccessException e) {
logger.error("Error loading the validation class: ", validator, e);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false);
}
}
}
- if (validationResults.isValidationState()) {
+ ValidationResults validationResults = validationResultsBuilder.build();
+ if (validationResults.getValidationState()) {
return validationResults;
} else {
// atleast one validation has failed, so we throw an exception
- LaunchValidationException launchValidationException = new LaunchValidationException();
- launchValidationException.setValidationResult(validationResults);
- launchValidationException.setErrorMessage("Validation failed refer the validationResults list for "
- + "detail error. Validation errors : " + errorMsg);
- throw launchValidationException;
+ LaunchValidationException launchValidationException = LaunchValidationException.newBuilder()
+ .setValidationResult(validationResults)
+ .setErrorMessage("Validation failed refer the validationResults list for "
+ + "detail error. Validation errors : " + errorMsg)
+ .build();
+ throw new OrchestratorException(launchValidationException.getErrorMessage());
}
}
public ValidationResults validateProcess(ExperimentModel experiment, ProcessModel processModel)
- throws OrchestratorException, LaunchValidationException {
+ throws OrchestratorException {
- ValidationResults validationResults = new ValidationResults();
- validationResults.setValidationState(
- true); // initially making it to success, if atleast one failed them simply mark it failed.
+ ValidationResults.Builder validationResultsBuilder = ValidationResults.newBuilder()
+ .setValidationState(true); // initially making it to success, if atleast one failed them simply mark it failed.
String errorMsg = "Validation Errors : ";
if (this.orchestratorConfiguration.isEnableValidation()) {
List<String> validatorClzzez =
@@ -181,49 +182,53 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
Class<? extends JobMetadataValidator> vClass =
Class.forName(validator.trim()).asSubclass(JobMetadataValidator.class);
JobMetadataValidator jobMetadataValidator = vClass.newInstance();
- validationResults = jobMetadataValidator.validate(experiment, processModel);
- if (validationResults.isValidationState()) {
+ ValidationResults validationResults = jobMetadataValidator.validate(experiment, processModel);
+ if (validationResults.getValidationState()) {
logger.info("Validation of " + validator + " is SUCCESSFUL");
} else {
- List<ValidatorResult> validationResultList = validationResults.getValidationResultList();
+ List<ValidatorResult> validationResultList = validationResults.getValidationResultListList();
for (ValidatorResult result : validationResultList) {
- if (!result.isResult()) {
+ if (!result.getResult()) {
String validationError = result.getErrorDetails();
- if (validationError != null) {
+ if (!validationError.isEmpty()) {
errorMsg += validationError + " ";
}
}
}
logger.error("Validation of " + validator + " for experiment Id " + experiment.getExperimentId()
+ " is FAILED:[error]. " + errorMsg);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false)
+ .addAllValidationResultList(validationResults.getValidationResultListList());
try {
- ErrorModel details = new ErrorModel();
- details.setActualErrorMessage(errorMsg);
- details.setCreationTime(Calendar.getInstance().getTimeInMillis());
+ ErrorModel details = ErrorModel.newBuilder()
+ .setActualErrorMessage(errorMsg)
+ .setCreationTime(Calendar.getInstance().getTimeInMillis())
+ .build();
final RegistryService.Iface registryClient = getRegistryHandler();
registryClient.addErrors(
OrchestratorConstants.PROCESS_ERROR, details, processModel.getProcessId());
- } catch (TException e) {
+ } catch (Exception e) {
throw new RuntimeException("Error while saving error details to registry", e);
}
break;
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
logger.error("Error loading the validation class: ", validator, e);
- validationResults.setValidationState(false);
+ validationResultsBuilder.setValidationState(false);
}
}
}
- if (validationResults.isValidationState()) {
+ ValidationResults validationResults = validationResultsBuilder.build();
+ if (validationResults.getValidationState()) {
return validationResults;
} else {
// atleast one validation has failed, so we throw an exception
- LaunchValidationException launchValidationException = new LaunchValidationException();
- launchValidationException.setValidationResult(validationResults);
- launchValidationException.setErrorMessage("Validation failed refer the validationResults "
- + "list for detail error. Validation errors : " + errorMsg);
- throw launchValidationException;
+ LaunchValidationException launchValidationException = LaunchValidationException.newBuilder()
+ .setValidationResult(validationResults)
+ .setErrorMessage("Validation failed refer the validationResults "
+ + "list for detail error. Validation errors : " + errorMsg)
+ .build();
+ throw new OrchestratorException(launchValidationException.getErrorMessage());
}
}
@@ -241,7 +246,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
} else {
logger.warn("No processes found for experiment " + experiment.getExperimentId() + " to cancel");
}
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed to fetch process ids for experiment " + experiment.getExperimentId(), e);
throw new OrchestratorException(
"Failed to fetch process ids for experiment " + experiment.getExperimentId(), e);
@@ -360,30 +365,29 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
String gatewayId,
ProcessModel processModel,
ResourceType resourceType)
- throws TException, AiravataException, OrchestratorException {
+ throws Exception, AiravataException, OrchestratorException {
List<String> envTaskIds = new ArrayList<>();
- TaskModel envSetupTask = new TaskModel();
- envSetupTask.setTaskType(TaskTypes.ENV_SETUP);
- envSetupTask.setTaskStatuses(List.of(new TaskStatus(TaskState.CREATED)));
- envSetupTask.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- envSetupTask.setLastUpdateTime(AiravataUtils.getCurrentTimestamp().getTime());
- envSetupTask.setParentProcessId(processModel.getProcessId());
-
- EnvironmentSetupTaskModel envSetupSubModel = new EnvironmentSetupTaskModel();
- envSetupSubModel.setProtocol(
- OrchestratorUtils.getSecurityProtocol(processModel, gatewayId)); // TODO support for CLOUD (AWS)
-
String scratchLocation = OrchestratorUtils.getScratchLocation(processModel, gatewayId);
String workingDir = scratchLocation + File.separator + processModel.getProcessId();
- envSetupSubModel.setLocation(workingDir);
- byte[] envSetupSub = ThriftUtils.serializeThriftObject(envSetupSubModel);
- envSetupTask.setSubTaskModel(envSetupSub);
- envSetupTask.setMaxRetry(3);
- envSetupTask.setCurrentRetry(0);
+ EnvironmentSetupTaskModel envSetupSubModel = EnvironmentSetupTaskModel.newBuilder()
+ .setProtocol(OrchestratorUtils.getSecurityProtocol(processModel, gatewayId)) // TODO support for CLOUD (AWS)
+ .setLocation(workingDir)
+ .build();
+
+ TaskModel envSetupTask = TaskModel.newBuilder()
+ .setTaskType(TaskTypes.ENV_SETUP)
+ .addTaskStatuses(TaskStatus.newBuilder().setState(TaskState.CREATED).build())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setLastUpdateTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .setParentProcessId(processModel.getProcessId())
+ .setSubTaskModel(com.google.protobuf.ByteString.copyFrom(envSetupSubModel.toByteArray()))
+ .setMaxRetry(3)
+ .setCurrentRetry(0)
+ .build();
String envSetupTaskId = registryClient.addTask(envSetupTask, processModel.getProcessId());
- envSetupTask.setTaskId(envSetupTaskId);
+ envSetupTask = envSetupTask.toBuilder().setTaskId(envSetupTaskId).build();
envTaskIds.add(envSetupTaskId);
return envTaskIds;
@@ -393,10 +397,10 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
ProcessModel processModel, String gatewayId, ResourceType resourceType) throws AiravataException {
List<String> dataStagingTaskIds = new ArrayList<>();
- List<InputDataObjectType> processInputs = processModel.getProcessInputs();
+ List<InputDataObjectType> processInputs = processModel.getProcessInputsList();
sortByInputOrder(processInputs);
- if (processInputs != null) {
+ if (!processInputs.isEmpty()) {
for (InputDataObjectType processInput : processInputs) {
DataType type = processInput.getType();
switch (type) {
@@ -406,9 +410,8 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
break;
case URI:
case URI_COLLECTION:
- if ((processInput.getValue() == null
- || processInput.getValue().isEmpty())
- && !processInput.isIsRequired()) {
+ if (processInput.getValue().isEmpty()
+ && !processInput.getIsRequired()) {
logger.debug(
"Skipping input data staging task for {} since value is empty and not required",
processInput.getName());
@@ -419,7 +422,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
TaskModel inputDataStagingTask = getInputDataStagingTask(
registryClient, processModel, processInput, gatewayId, resourceType);
String taskId = registryClient.addTask(inputDataStagingTask, processModel.getProcessId());
- inputDataStagingTask.setTaskId(taskId);
+ inputDataStagingTask = inputDataStagingTask.toBuilder().setTaskId(taskId).build();
dataStagingTaskIds.add(inputDataStagingTask.getTaskId());
} catch (Exception e) {
throw new AiravataException("Error while serializing data staging sub task model", e);
@@ -436,20 +439,19 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
public List<String> createAndSaveOutputDataStagingTasks(
ProcessModel processModel, String gatewayId, ResourceType resourceType)
- throws AiravataException, TException, OrchestratorException {
+ throws AiravataException, Exception, OrchestratorException {
final RegistryService.Iface registryClient = getRegistryHandler();
List<String> dataStagingTaskIds = new ArrayList<>();
- List<OutputDataObjectType> processOutputs = processModel.getProcessOutputs();
+ List<OutputDataObjectType> processOutputs = processModel.getProcessOutputsList();
String appName = OrchestratorUtils.getApplicationInterfaceName(processModel);
- if (processOutputs != null) {
+ if (!processOutputs.isEmpty()) {
for (OutputDataObjectType processOutput : processOutputs) {
DataType type = processOutput.getType();
switch (type) {
case STDOUT:
- if (null == processOutput.getValue()
- || processOutput.getValue().trim().isEmpty()) {
- processOutput.setValue(appName + ".stdout");
+ if (processOutput.getValue().trim().isEmpty()) {
+ processOutput = processOutput.toBuilder().setValue(appName + ".stdout").build();
}
createOutputDataSatagingTasks(
registryClient,
@@ -460,9 +462,8 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
resourceType);
break;
case STDERR:
- if (null == processOutput.getValue()
- || processOutput.getValue().trim().isEmpty()) {
- processOutput.setValue(appName + ".stderr");
+ if (processOutput.getValue().trim().isEmpty()) {
+ processOutput = processOutput.toBuilder().setValue(appName + ".stderr").build();
}
createOutputDataSatagingTasks(
registryClient,
@@ -502,20 +503,19 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
public List<String> createAndSaveIntermediateOutputDataStagingTasks(
ProcessModel processModel, String gatewayId, ProcessModel parentProcess, ResourceType resourceType)
- throws AiravataException, TException, OrchestratorException {
+ throws AiravataException, Exception, OrchestratorException {
final RegistryService.Iface registryClient = getRegistryHandler();
List<String> dataStagingTaskIds = new ArrayList<>();
- List<OutputDataObjectType> processOutputs = processModel.getProcessOutputs();
+ List<OutputDataObjectType> processOutputs = processModel.getProcessOutputsList();
String appName = OrchestratorUtils.getApplicationInterfaceName(processModel);
- if (processOutputs != null) {
+ if (!processOutputs.isEmpty()) {
for (OutputDataObjectType processOutput : processOutputs) {
DataType type = processOutput.getType();
switch (type) {
case STDOUT:
- if (null == processOutput.getValue()
- || processOutput.getValue().trim().isEmpty()) {
- processOutput.setValue(appName + ".stdout");
+ if (processOutput.getValue().trim().isEmpty()) {
+ processOutput = processOutput.toBuilder().setValue(appName + ".stdout").build();
}
createIntermediateOutputDataStagingTasks(
registryClient,
@@ -527,9 +527,8 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
resourceType);
break;
case STDERR:
- if (null == processOutput.getValue()
- || processOutput.getValue().trim().isEmpty()) {
- processOutput.setValue(appName + ".stderr");
+ if (processOutput.getValue().trim().isEmpty()) {
+ processOutput = processOutput.toBuilder().setValue(appName + ".stderr").build();
}
createIntermediateOutputDataStagingTasks(
registryClient,
@@ -560,10 +559,10 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
return dataStagingTaskIds;
}
- private boolean isArchive(RegistryService.Iface registryClient, ProcessModel processModel) throws TException {
+ private boolean isArchive(RegistryService.Iface registryClient, ProcessModel processModel) throws Exception {
ApplicationInterfaceDescription appInterface =
registryClient.getApplicationInterface(processModel.getApplicationInterfaceId());
- return appInterface.isArchiveWorkingDirectory();
+ return appInterface.getArchiveWorkingDirectory();
}
private void createArchiveDataStatgingTask(
@@ -572,15 +571,15 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
String gatewayId,
List<String> dataStagingTaskIds,
ResourceType resourceType)
- throws AiravataException, TException, OrchestratorException {
+ throws AiravataException, Exception, OrchestratorException {
TaskModel archiveTask;
try {
archiveTask = getOutputDataStagingTask(registryClient, processModel, null, gatewayId, null, resourceType);
- } catch (TException e) {
+ } catch (Exception e) {
throw new AiravataException("Error! DataStaging sub task serialization failed", e);
}
String taskId = registryClient.addTask(archiveTask, processModel.getProcessId());
- archiveTask.setTaskId(taskId);
+ archiveTask = archiveTask.toBuilder().setTaskId(taskId).build();
dataStagingTaskIds.add(archiveTask.getTaskId());
}
@@ -596,9 +595,9 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
TaskModel outputDataStagingTask = getOutputDataStagingTask(
registryClient, processModel, processOutput, gatewayId, null, resourceType);
String taskId = registryClient.addTask(outputDataStagingTask, processModel.getProcessId());
- outputDataStagingTask.setTaskId(taskId);
+ outputDataStagingTask = outputDataStagingTask.toBuilder().setTaskId(taskId).build();
dataStagingTaskIds.add(outputDataStagingTask.getTaskId());
- } catch (TException e) {
+ } catch (Exception e) {
throw new AiravataException("Error while serializing data staging sub task model", e);
}
}
@@ -615,11 +614,11 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
try {
TaskModel outputDataStagingTask = getOutputDataStagingTask(
registryClient, processModel, processOutput, gatewayId, parentProcess, resourceType);
- outputDataStagingTask.setTaskType(TaskTypes.OUTPUT_FETCHING);
+ outputDataStagingTask = outputDataStagingTask.toBuilder().setTaskType(TaskTypes.OUTPUT_FETCHING).build();
String taskId = registryClient.addTask(outputDataStagingTask, processModel.getProcessId());
- outputDataStagingTask.setTaskId(taskId);
+ outputDataStagingTask = outputDataStagingTask.toBuilder().setTaskId(taskId).build();
dataStagingTaskIds.add(outputDataStagingTask.getTaskId());
- } catch (TException e) {
+ } catch (Exception e) {
throw new AiravataException("Error while serializing data staging sub task model", e);
}
}
@@ -629,7 +628,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
JobSubmissionInterface jobSubmissionInterface,
ProcessModel processModel,
int wallTime)
- throws TException, OrchestratorException {
+ throws Exception, OrchestratorException {
JobSubmissionProtocol jobSubmissionProtocol = jobSubmissionInterface.getJobSubmissionProtocol();
MonitorMode monitorMode;
@@ -655,50 +654,57 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
}
List<String> submissionTaskIds = new ArrayList<>();
- TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
- taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-
- JobSubmissionTaskModel submissionSubTask = new JobSubmissionTaskModel();
- submissionSubTask.setMonitorMode(monitorMode);
- submissionSubTask.setJobSubmissionProtocol(jobSubmissionProtocol);
- submissionSubTask.setWallTime(wallTime);
-
- byte[] bytes = ThriftUtils.serializeThriftObject(submissionSubTask);
-
- TaskModel taskModel = new TaskModel();
- taskModel.setParentProcessId(processModel.getProcessId());
- taskModel.setCreationTime(System.currentTimeMillis());
- taskModel.setLastUpdateTime(taskModel.getCreationTime());
- taskModel.setTaskStatuses(List.of(taskStatus));
- taskModel.setTaskType(TaskTypes.JOB_SUBMISSION);
- taskModel.setSubTaskModel(bytes);
- taskModel.setMaxRetry(1);
- taskModel.setCurrentRetry(0);
+ TaskStatus taskStatus = TaskStatus.newBuilder()
+ .setState(TaskState.CREATED)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+
+ JobSubmissionTaskModel submissionSubTask = JobSubmissionTaskModel.newBuilder()
+ .setMonitorMode(monitorMode)
+ .setJobSubmissionProtocol(jobSubmissionProtocol)
+ .setWallTime(wallTime)
+ .build();
+
+ long creationTime = System.currentTimeMillis();
+ TaskModel taskModel = TaskModel.newBuilder()
+ .setParentProcessId(processModel.getProcessId())
+ .setCreationTime(creationTime)
+ .setLastUpdateTime(creationTime)
+ .addTaskStatuses(taskStatus)
+ .setTaskType(TaskTypes.JOB_SUBMISSION)
+ .setSubTaskModel(com.google.protobuf.ByteString.copyFrom(submissionSubTask.toByteArray()))
+ .setMaxRetry(1)
+ .setCurrentRetry(0)
+ .build();
String taskId = registryClient.addTask(taskModel, processModel.getProcessId());
- taskModel.setTaskId(taskId);
+ taskModel = taskModel.toBuilder().setTaskId(taskId).build();
submissionTaskIds.add(taskModel.getTaskId());
// create monitor task for this Email based monitor mode job
if (monitorMode == MonitorMode.JOB_EMAIL_NOTIFICATION_MONITOR || monitorMode == MonitorMode.CLOUD_JOB_MONITOR) {
- TaskStatus monitorTaskStatus = new TaskStatus(TaskState.CREATED);
- monitorTaskStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
-
- TaskModel monitorTaskModel = new TaskModel();
- monitorTaskModel.setParentProcessId(processModel.getProcessId());
- monitorTaskModel.setCreationTime(System.currentTimeMillis());
- monitorTaskModel.setLastUpdateTime(monitorTaskModel.getCreationTime());
- monitorTaskModel.setTaskStatuses(List.of(monitorTaskStatus));
- monitorTaskModel.setTaskType(TaskTypes.MONITORING);
-
- MonitorTaskModel monitorSubTaskModel = new MonitorTaskModel();
- monitorSubTaskModel.setMonitorMode(monitorMode);
- monitorTaskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(monitorSubTaskModel));
+ TaskStatus monitorTaskStatus = TaskStatus.newBuilder()
+ .setState(TaskState.CREATED)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
+
+ MonitorTaskModel monitorSubTaskModel = MonitorTaskModel.newBuilder()
+ .setMonitorMode(monitorMode)
+ .build();
+
+ long monitorCreationTime = System.currentTimeMillis();
+ TaskModel monitorTaskModel = TaskModel.newBuilder()
+ .setParentProcessId(processModel.getProcessId())
+ .setCreationTime(monitorCreationTime)
+ .setLastUpdateTime(monitorCreationTime)
+ .addTaskStatuses(monitorTaskStatus)
+ .setTaskType(TaskTypes.MONITORING)
+ .setSubTaskModel(com.google.protobuf.ByteString.copyFrom(monitorSubTaskModel.toByteArray()))
+ .build();
String mTaskId = registryClient.addTask(monitorTaskModel, processModel.getProcessId());
- monitorTaskModel.setTaskId(mTaskId);
+ monitorTaskModel = monitorTaskModel.toBuilder().setTaskId(mTaskId).build();
submissionTaskIds.add(monitorTaskModel.getTaskId());
}
@@ -720,18 +726,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
InputDataObjectType processInput,
String gatewayId,
ResourceType resourceType)
- throws TException, AiravataException, OrchestratorException {
- // create new task model for this task
- TaskModel taskModel = new TaskModel();
- taskModel.setParentProcessId(processModel.getProcessId());
- taskModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- taskModel.setLastUpdateTime(taskModel.getCreationTime());
- TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
- taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
- taskModel.setTaskStatuses(Arrays.asList(taskStatus));
- taskModel.setTaskType(TaskTypes.DATA_STAGING);
- // create data staging sub task model
- DataStagingTaskModel submodel = new DataStagingTaskModel();
+ throws Exception, AiravataException, OrchestratorException {
ComputeResourceDescription computeResource =
registryClient.getComputeResource(processModel.getComputeResourceId());
@@ -747,8 +742,10 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
OrchestratorUtils.getPreferredDataMovementProtocol(processModel, gatewayId);
String loginUserName = OrchestratorUtils.getLoginUserName(processModel, gatewayId);
StringBuilder destinationPath = new StringBuilder(workingDir);
- Optional.ofNullable(processInput.getOverrideFilename())
- .ifPresent(destinationPath::append); // If an override filename is provided
+ String overrideFilename = processInput.getOverrideFilename();
+ if (!overrideFilename.isEmpty()) {
+ destinationPath.append(overrideFilename);
+ }
destination = new URI(
dataMovementProtocol.name(),
@@ -764,14 +761,31 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
throw new OrchestratorException("Error while constructing destination file URI", e);
}
- submodel.setDestination(destination.toString());
- submodel.setType(DataStageType.INPUT);
- submodel.setSource(processInput.getValue());
- submodel.setProcessInput(processInput);
- taskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(submodel));
- taskModel.setMaxRetry(3);
- taskModel.setCurrentRetry(0);
- return taskModel;
+ // create data staging sub task model
+ DataStagingTaskModel submodel = DataStagingTaskModel.newBuilder()
+ .setDestination(destination.toString())
+ .setType(DataStageType.INPUT)
+ .setSource(processInput.getValue())
+ .setProcessInput(processInput)
+ .build();
+
+ long now = AiravataUtils.getCurrentTimestamp().getTime();
+ TaskStatus taskStatus = TaskStatus.newBuilder()
+ .setState(TaskState.CREATED)
+ .setTimeOfStateChange(now)
+ .build();
+
+ // create new task model for this task
+ return TaskModel.newBuilder()
+ .setParentProcessId(processModel.getProcessId())
+ .setCreationTime(now)
+ .setLastUpdateTime(now)
+ .addTaskStatuses(taskStatus)
+ .setTaskType(TaskTypes.DATA_STAGING)
+ .setSubTaskModel(com.google.protobuf.ByteString.copyFrom(submodel.toByteArray()))
+ .setMaxRetry(3)
+ .setCurrentRetry(0)
+ .build();
}
private TaskModel getOutputDataStagingTask(
@@ -781,22 +795,10 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
String gatewayId,
ProcessModel parentProcess,
ResourceType resourceType)
- throws TException, AiravataException, OrchestratorException {
+ throws Exception, AiravataException, OrchestratorException {
try {
- // create new task model for this task
- TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
- taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-
- TaskModel taskModel = new TaskModel();
- taskModel.setParentProcessId(processModel.getProcessId());
- taskModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
- taskModel.setLastUpdateTime(taskModel.getCreationTime());
- taskModel.setTaskStatuses(List.of(taskStatus));
- taskModel.setTaskType(TaskTypes.DATA_STAGING);
-
ComputeResourceDescription computeResource =
registryClient.getComputeResource(processModel.getComputeResourceId());
- DataStagingTaskModel submodel = new DataStagingTaskModel();
String workingDir = OrchestratorUtils.getScratchLocation(processModel, gatewayId)
+ File.separator
@@ -804,12 +806,14 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
+ File.separator;
DataMovementProtocol dataMovementProtocol =
OrchestratorUtils.getPreferredDataMovementProtocol(processModel, gatewayId);
+
+ DataStagingTaskModel.Builder submodelBuilder = DataStagingTaskModel.newBuilder();
URI source;
try {
String loginUserName = OrchestratorUtils.getLoginUserName(processModel, gatewayId);
if (processOutput != null) {
- submodel.setType(DataStageType.OUPUT);
- submodel.setProcessOutput(processOutput);
+ submodelBuilder.setType(DataStageType.OUPUT)
+ .setProcessOutput(processOutput);
source = new URI(
dataMovementProtocol.name(),
loginUserName,
@@ -820,7 +824,7 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
null);
} else {
// archive
- submodel.setType(DataStageType.ARCHIVE_OUTPUT);
+ submodelBuilder.setType(DataStageType.ARCHIVE_OUTPUT);
source = new URI(
dataMovementProtocol.name(),
loginUserName,
@@ -835,14 +839,30 @@ public class SimpleOrchestratorImpl extends AbstractOrchestrator {
throw new OrchestratorException("Error while constructing source file URI", e);
}
- submodel.setSource(source.toString());
- // We don't know destination location at this time, data staging task will set this.
- // because destination is required field we set dummy destination
- submodel.setDestination("dummy://temp/file/location");
- taskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(submodel));
- taskModel.setMaxRetry(3);
- taskModel.setCurrentRetry(0);
- return taskModel;
+ DataStagingTaskModel submodel = submodelBuilder
+ .setSource(source.toString())
+ // We don't know destination location at this time, data staging task will set this.
+ // because destination is required field we set dummy destination
+ .setDestination("dummy://temp/file/location")
+ .build();
+
+ long now = AiravataUtils.getCurrentTimestamp().getTime();
+ TaskStatus taskStatus = TaskStatus.newBuilder()
+ .setState(TaskState.CREATED)
+ .setTimeOfStateChange(now)
+ .build();
+
+ // create new task model for this task
+ return TaskModel.newBuilder()
+ .setParentProcessId(processModel.getProcessId())
+ .setCreationTime(now)
+ .setLastUpdateTime(now)
+ .addTaskStatuses(taskStatus)
+ .setTaskType(TaskTypes.DATA_STAGING)
+ .setSubTaskModel(com.google.protobuf.ByteString.copyFrom(submodel.toByteArray()))
+ .setMaxRetry(3)
+ .setCurrentRetry(0)
+ .build();
} catch (OrchestratorException e) {
throw new OrchestratorException("Error occurred while retrieving data movement from app catalog", e);
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskContext.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskContext.java
index d52a9e975b..2eb30437fb 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskContext.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskContext.java
@@ -33,43 +33,43 @@ import org.apache.airavata.common.util.AiravataUtils;
import org.apache.airavata.common.util.ThriftUtils;
import org.apache.airavata.compute.util.GroupComputeResourcePreferenceUtil;
import org.apache.airavata.messaging.service.Publisher;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.BatchQueue;
-import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionInterface;
-import org.apache.airavata.model.appcatalog.computeresource.JobSubmissionProtocol;
-import org.apache.airavata.model.appcatalog.computeresource.LOCALSubmission;
-import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
-import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
-import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
-import org.apache.airavata.model.appcatalog.gatewayprofile.StoragePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ComputeResourceReservation;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.EnvironmentSpecificPreferences;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.GroupResourceProfile;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
-import org.apache.airavata.model.appcatalog.storageresource.StorageResourceDescription;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserComputeResourcePreference;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserResourceProfile;
-import org.apache.airavata.model.appcatalog.userresourceprofile.UserStoragePreference;
-import org.apache.airavata.model.application.io.DataType;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.data.movement.DataMovementInterface;
-import org.apache.airavata.model.data.movement.DataMovementProtocol;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.job.JobModel;
-import org.apache.airavata.model.process.ProcessModel;
-import org.apache.airavata.model.scheduling.ComputationalResourceSchedulingModel;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
-import org.apache.airavata.model.status.TaskState;
-import org.apache.airavata.model.status.TaskStatus;
-import org.apache.airavata.model.task.TaskModel;
-import org.apache.airavata.model.user.UserProfile;
+import org.apache.airavata.model.appcatalog.appdeployment.proto.ApplicationDeploymentDescription;
+import org.apache.airavata.model.appcatalog.appinterface.proto.ApplicationInterfaceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.BatchQueue;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionInterface;
+import org.apache.airavata.model.appcatalog.computeresource.proto.JobSubmissionProtocol;
+import org.apache.airavata.model.appcatalog.computeresource.proto.LOCALSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.proto.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.proto.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.GatewayResourceProfile;
+import org.apache.airavata.model.appcatalog.gatewayprofile.proto.StoragePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ComputeResourceReservation;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.EnvironmentSpecificPreferences;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.GroupResourceProfile;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
+import org.apache.airavata.model.appcatalog.storageresource.proto.StorageResourceDescription;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserComputeResourcePreference;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserResourceProfile;
+import org.apache.airavata.model.appcatalog.userresourceprofile.proto.UserStoragePreference;
+import org.apache.airavata.model.application.io.proto.DataType;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.data.movement.proto.DataMovementInterface;
+import org.apache.airavata.model.data.movement.proto.DataMovementProtocol;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.job.proto.JobModel;
+import org.apache.airavata.model.process.proto.ProcessModel;
+import org.apache.airavata.model.scheduling.proto.ComputationalResourceSchedulingModel;
+import org.apache.airavata.model.status.proto.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessStatus;
+import org.apache.airavata.model.status.proto.TaskState;
+import org.apache.airavata.model.status.proto.TaskStatus;
+import org.apache.airavata.model.task.proto.TaskModel;
+import org.apache.airavata.model.user.proto.UserProfile;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.security.profile.user.core.repositories.UserProfileRepository;
-import org.apache.thrift.TException;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -221,7 +221,7 @@ public class TaskContext {
if (this.groupResourceProfile == null) {
try {
gatewayResourceProfile = registryClient.getGatewayResourceProfile(gatewayId);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed to fetch gateway resource profile for gateway {}", gatewayId);
throw e;
}
@@ -237,7 +237,7 @@ public class TaskContext {
if (groupResourceProfile == null) {
try {
groupResourceProfile = registryClient.getGroupResourceProfile(processModel.getGroupResourceProfileId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to find a group resource proifle with id {}", processModel.getGroupResourceProfileId());
throw e;
@@ -256,7 +256,7 @@ public class TaskContext {
try {
groupComputeResourcePreference = registryClient.getGroupComputeResourcePreference(
processModel.getComputeResourceId(), processModel.getGroupResourceProfileId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to find group compute resource preference for compute {}, and group resource profile {}",
processModel.getComputeResourceId(),
@@ -281,10 +281,10 @@ public class TaskContext {
public UserResourceProfile getUserResourceProfile() throws Exception {
- if (userResourceProfile == null && processModel.isUseUserCRPref()) {
+ if (userResourceProfile == null && processModel.getUseUserCRPref()) {
try {
this.userResourceProfile = registryClient.getUserResourceProfile(processModel.getUserName(), gatewayId);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch user resource profile for user {} in gateway {}",
processModel.getUserName(),
@@ -301,11 +301,11 @@ public class TaskContext {
}
private UserComputeResourcePreference getUserComputeResourcePreference() throws Exception {
- if (this.userComputeResourcePreference == null && processModel.isUseUserCRPref()) {
+ if (this.userComputeResourcePreference == null && processModel.getUseUserCRPref()) {
try {
this.userComputeResourcePreference = registryClient.getUserComputeResourcePreference(
processModel.getUserName(), gatewayId, processModel.getComputeResourceId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch user compute resource preference for user {} compute resource {} in gateway {}",
processModel.getUserName(),
@@ -339,7 +339,7 @@ public class TaskContext {
if (this.gatewayStorageResourcePreference == null) {
try {
GatewayResourceProfile gatewayProfile = getGatewayResourceProfile();
- List<StoragePreference> storagePreferences = gatewayProfile.getStoragePreferences();
+ List<StoragePreference> storagePreferences = gatewayProfile.getStoragePreferencesList();
if (storagePreferences == null || storagePreferences.isEmpty()) {
throw new Exception("No storage preferences found for gateway " + gatewayId);
@@ -364,7 +364,7 @@ public class TaskContext {
"Using gateway-specific storage preference: {}",
this.gatewayStorageResourcePreference.getStorageResourceId());
}
- } catch (TException e) {
+ } catch (Exception e) {
logger.error("Failed to fetch gateway storage preference for gateway {}", gatewayId, e);
throw e;
}
@@ -392,7 +392,7 @@ public class TaskContext {
try {
this.applicationDeploymentDescription =
registryClient.getApplicationDeployment(processModel.getApplicationDeploymentId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch application deployment with id {}",
processModel.getApplicationDeploymentId(),
@@ -412,7 +412,7 @@ public class TaskContext {
try {
this.applicationInterfaceDescription =
registryClient.getApplicationInterface(processModel.getApplicationInterfaceId());
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch application interface with id {}",
processModel.getApplicationInterfaceId(),
@@ -511,7 +511,7 @@ public class TaskContext {
if (jobSubmissionProtocol == null) {
// Take highest priority one
List<JobSubmissionInterface> jobSubmissionInterfaces =
- getComputeResourceDescription().getJobSubmissionInterfaces();
+ getComputeResourceDescription().getJobSubmissionInterfacesList();
Collections.sort(
jobSubmissionInterfaces, Comparator.comparingInt(JobSubmissionInterface::getPriorityOrder));
jobSubmissionProtocol = jobSubmissionInterfaces.get(0).getJobSubmissionProtocol();
@@ -527,7 +527,7 @@ public class TaskContext {
if (dataMovementProtocol == null) {
// Take highest priority one
List<DataMovementInterface> dataMovementInterfaces =
- getComputeResourceDescription().getDataMovementInterfaces();
+ getComputeResourceDescription().getDataMovementInterfacesList();
Collections.sort(dataMovementInterfaces, Comparator.comparingInt(DataMovementInterface::getPriorityOrder));
dataMovementProtocol = dataMovementInterfaces.get(0).getDataMovementProtocol();
}
@@ -546,7 +546,7 @@ public class TaskContext {
if (taskList == null) {
synchronized (TaskModel.class) {
if (taskList == null) {
- taskList = getProcessModel().getTasks();
+ taskList = getProcessModel().getTasksList();
}
}
}
@@ -577,10 +577,11 @@ public class TaskContext {
public JobModel getJobModel() throws Exception {
if (jobModel == null) {
- jobModel = new JobModel();
- jobModel.setProcessId(processId);
- jobModel.setWorkingDir(getWorkingDir());
- jobModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
+ jobModel = JobModel.newBuilder()
+ .setProcessId(processId)
+ .setWorkingDir(getWorkingDir())
+ .setCreationTime(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
}
return jobModel;
}
@@ -590,9 +591,9 @@ public class TaskContext {
}
public ProcessState getProcessState() {
- if (processModel.getProcessStatuses() != null
- && processModel.getProcessStatuses().size() > 0)
- return processModel.getProcessStatuses().get(0).getState();
+ if (processModel.getProcessStatusesList() != null
+ && processModel.getProcessStatusesList().size() > 0)
+ return processModel.getProcessStatusesList().get(0).getState();
else return null;
}
@@ -604,29 +605,30 @@ public class TaskContext {
processId,
getProcessState().name(),
status.getState().name());
- List<ProcessStatus> processStatuses = new ArrayList<>();
- processStatuses.add(status);
- processModel.setProcessStatuses(processStatuses);
+ processModel = processModel.toBuilder()
+ .clearProcessStatuses()
+ .addProcessStatuses(status)
+ .build();
}
}
public ProcessStatus getProcessStatus() {
- if (processModel.getProcessStatuses() != null)
- return processModel.getProcessStatuses().get(0);
+ if (processModel.getProcessStatusesCount() > 0)
+ return processModel.getProcessStatusesList().get(0);
else return null;
}
public TaskState getTaskState() {
- if (getCurrentTaskModel() != null && getCurrentTaskModel().getTaskStatuses() != null) {
- return getCurrentTaskModel().getTaskStatuses().get(0).getState();
+ if (getCurrentTaskModel() != null && getCurrentTaskModel().getTaskStatusesList() != null) {
+ return getCurrentTaskModel().getTaskStatusesList().get(0).getState();
} else {
return null;
}
}
public TaskStatus getTaskStatus() {
- if (getCurrentTaskModel().getTaskStatuses() != null)
- return getCurrentTaskModel().getTaskStatuses().get(0);
+ if (getCurrentTaskModel().getTaskStatusesList() != null)
+ return getCurrentTaskModel().getTaskStatusesList().get(0);
else return null;
}
@@ -733,7 +735,7 @@ public class TaskContext {
}
public boolean isUseUserCRPref() {
- return getProcessModel().isUseUserCRPref();
+ return getProcessModel().getUseUserCRPref();
}
public boolean isSetGroupResourceProfile() {
@@ -779,7 +781,7 @@ public class TaskContext {
String inputStorageId = getInputStorageResourceId();
try {
return registryClient.getGatewayStoragePreference(gatewayId, inputStorageId);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch gateway storage preference for input storage {} in gateway {}",
inputStorageId,
@@ -801,7 +803,7 @@ public class TaskContext {
String outputStorageId = getOutputStorageResourceId();
try {
return registryClient.getGatewayStoragePreference(gatewayId, outputStorageId);
- } catch (TException e) {
+ } catch (Exception e) {
logger.error(
"Failed to fetch gateway storage preference for output storage {} in gateway {}",
outputStorageId,
@@ -922,7 +924,7 @@ public class TaskContext {
} else if (isValid(processModel.getProcessResourceSchedule().getQueueName())) {
return processModel.getProcessResourceSchedule().getQueueName();
} else {
- Optional<BatchQueue> defaultQueue = getComputeResourceDescription().getBatchQueues().stream()
+ Optional<BatchQueue> defaultQueue = getComputeResourceDescription().getBatchQueuesList().stream()
.filter(q -> q.isIsDefaultQueue())
.findFirst();
if (defaultQueue.isPresent()) {
@@ -936,7 +938,7 @@ public class TaskContext {
public List<String> getQueueSpecificMacros() throws Exception {
String queueName = getProcessCRSchedule().getQueueName();
- Optional<BatchQueue> queue = getComputeResourceDescription().getBatchQueues().stream()
+ Optional<BatchQueue> queue = getComputeResourceDescription().getBatchQueuesList().stream()
.filter(x -> x.getQueueName().equals(queueName))
.findFirst();
if (queue.isPresent()) {
@@ -951,7 +953,7 @@ public class TaskContext {
public JobSubmissionInterface getPreferredJobSubmissionInterface() throws Exception {
JobSubmissionProtocol preferredJobSubmissionProtocol = getJobSubmissionProtocol();
ComputeResourceDescription resourceDescription = getComputeResourceDescription();
- List<JobSubmissionInterface> jobSubmissionInterfaces = resourceDescription.getJobSubmissionInterfaces();
+ List<JobSubmissionInterface> jobSubmissionInterfaces = resourceDescription.getJobSubmissionInterfacesList();
Map<JobSubmissionProtocol, List<JobSubmissionInterface>> orderedInterfaces = new HashMap<>();
List<JobSubmissionInterface> interfaces = new ArrayList<>();
if (jobSubmissionInterfaces != null && !jobSubmissionInterfaces.isEmpty()) {
@@ -990,7 +992,7 @@ public class TaskContext {
return getTaskMap().get(taskId);
}
- public Object getSubTaskModel() throws TException {
+ public Object getSubTaskModel() throws Exception {
if (subTaskModel == null) {
subTaskModel = ThriftUtils.getSubTaskModel(getCurrentTaskModel());
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskFactory.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskFactory.java
index 30e212e8f3..5f32aed20b 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskFactory.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/TaskFactory.java
@@ -21,7 +21,7 @@ package org.apache.airavata.execution.orchestrator;
import java.util.EnumMap;
import java.util.Map;
-import org.apache.airavata.model.appcatalog.groupresourceprofile.ResourceType;
+import org.apache.airavata.model.appcatalog.groupresourceprofile.proto.ResourceType;
public class TaskFactory {
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/WorkflowManager.java b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/WorkflowManager.java
index 76488a228b..26f89b90d6 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/WorkflowManager.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/orchestrator/WorkflowManager.java
@@ -30,12 +30,12 @@ import org.apache.airavata.messaging.service.MessageContext;
import org.apache.airavata.messaging.service.MessagingFactory;
import org.apache.airavata.messaging.service.Publisher;
import org.apache.airavata.messaging.service.Type;
-import org.apache.airavata.model.messaging.event.MessageType;
-import org.apache.airavata.model.messaging.event.ProcessIdentifier;
-import org.apache.airavata.model.messaging.event.ProcessStatusChangeEvent;
-import org.apache.airavata.model.process.ProcessWorkflow;
-import org.apache.airavata.model.status.ProcessState;
-import org.apache.airavata.model.status.ProcessStatus;
+import org.apache.airavata.model.messaging.event.proto.MessageType;
+import org.apache.airavata.model.messaging.event.proto.ProcessIdentifier;
+import org.apache.airavata.model.messaging.event.proto.ProcessStatusChangeEvent;
+import org.apache.airavata.model.process.proto.ProcessWorkflow;
+import org.apache.airavata.model.status.proto.ProcessState;
+import org.apache.airavata.model.status.proto.ProcessStatus;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.helix.manager.zk.ZKHelixAdmin;
import org.apache.helix.zookeeper.api.client.RealmAwareZkClient.RealmMode;
@@ -121,9 +121,10 @@ public class WorkflowManager {
public void publishProcessStatus(String processId, String experimentId, String gatewayId, ProcessState state)
throws AiravataException {
- ProcessStatus status = new ProcessStatus();
- status.setState(state);
- status.setTimeOfStateChange(Calendar.getInstance().getTimeInMillis());
+ ProcessStatus status = ProcessStatus.newBuilder()
+ .setState(state)
+ .setTimeOfStateChange(Calendar.getInstance().getTimeInMillis())
+ .build();
try {
registryHandler.updateProcessStatus(status, processId);
@@ -131,8 +132,10 @@ public class WorkflowManager {
logger.error("Failed to update process status " + processId, e);
}
- ProcessIdentifier identifier = new ProcessIdentifier(processId, experimentId, gatewayId);
- ProcessStatusChangeEvent processStatusChangeEvent = new ProcessStatusChangeEvent(status.getState(), identifier);
+ ProcessIdentifier identifier = ProcessIdentifier.newBuilder()
+ .setProcessId(processId).setExperimentId(experimentId).setGatewayId(gatewayId).build();
+ ProcessStatusChangeEvent processStatusChangeEvent = ProcessStatusChangeEvent.newBuilder()
+ .setState(status.getState()).setProcessIdentity(identifier).build();
MessageContext msgCtx = new MessageContext(
processStatusChangeEvent,
MessageType.PROCESS,
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentErrorRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentErrorRepository.java
index 285e1da414..bf1d42f891 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentErrorRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentErrorRepository.java
@@ -26,8 +26,8 @@ import org.apache.airavata.execution.model.ExperimentErrorPK;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.ExpCatalogUtils;
import org.apache.airavata.execution.util.cpi.RegistryException;
-import org.apache.airavata.model.commons.ErrorModel;
-import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.commons.proto.ErrorModel;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -79,6 +79,6 @@ public class ExperimentErrorRepository
public List<ErrorModel> getExperimentErrors(String experimentId) throws RegistryException {
ExperimentRepository experimentRepository = new ExperimentRepository();
ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
- return experimentModel.getErrors();
+ return experimentModel.getErrorsList();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentInputRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentInputRepository.java
index d5d213030f..728e7a28ef 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentInputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentInputRepository.java
@@ -25,8 +25,8 @@ import org.apache.airavata.execution.model.ExperimentInputEntity;
import org.apache.airavata.execution.model.ExperimentInputPK;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.cpi.RegistryException;
-import org.apache.airavata.model.application.io.InputDataObjectType;
-import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.application.io.proto.InputDataObjectType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -77,6 +77,6 @@ public class ExperimentInputRepository
public List<InputDataObjectType> getExperimentInputs(String experimentId) throws RegistryException {
ExperimentRepository experimentRepository = new ExperimentRepository();
ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
- return experimentModel.getExperimentInputs();
+ return experimentModel.getExperimentInputsList();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentOutputRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentOutputRepository.java
index 5c9f6b7568..315afe55ba 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentOutputRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentOutputRepository.java
@@ -25,8 +25,8 @@ import org.apache.airavata.execution.model.ExperimentOutputEntity;
import org.apache.airavata.execution.model.ExperimentOutputPK;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.cpi.RegistryException;
-import org.apache.airavata.model.application.io.OutputDataObjectType;
-import org.apache.airavata.model.experiment.ExperimentModel;
+import org.apache.airavata.model.application.io.proto.OutputDataObjectType;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -77,6 +77,6 @@ public class ExperimentOutputRepository
public List<OutputDataObjectType> getExperimentOutputs(String experimentId) throws RegistryException {
ExperimentRepository experimentRepository = new ExperimentRepository();
ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
- return experimentModel.getExperimentOutputs();
+ return experimentModel.getExperimentOutputsList();
}
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentRepository.java
index c3468c4c7c..182e2e3f3c 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentRepository.java
@@ -31,10 +31,10 @@ import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.RegistryException;
import org.apache.airavata.execution.util.cpi.ResultOrderType;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.experiment.UserConfigurationDataModel;
-import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.status.ExperimentStatus;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.experiment.proto.UserConfigurationDataModel;
+import org.apache.airavata.model.status.proto.ExperimentState;
+import org.apache.airavata.model.status.proto.ExperimentStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -63,18 +63,18 @@ public class ExperimentRepository extends AbstractRepository<ExperimentModel, Ex
protected ExperimentEntity saveExperiment(ExperimentModel experimentModel) throws RegistryException {
String experimentId = experimentModel.getExperimentId();
- if (experimentModel.getExperimentStatus() != null) {
+ if (experimentModel.getExperimentStatusList() != null) {
logger.debug("Populating the status id of ExperimentStatus objects for the Experiment");
- experimentModel.getExperimentStatus().forEach(experimentStatusEntity -> {
+ experimentModel.getExperimentStatusList().forEach(experimentStatusEntity -> {
if (experimentStatusEntity.getStatusId() == null) {
experimentStatusEntity.setStatusId(AiravataUtils.getId("EXPERIMENT_STATE"));
}
});
}
- if (experimentModel.getProcesses() != null) {
+ if (experimentModel.getProcessesList() != null) {
logger.debug("Populating the Process objects' Experiment ID for the Experiment");
- experimentModel.getProcesses().forEach(processModel -> processModel.setExperimentId(experimentId));
+ experimentModel.getProcessesList().forEach(processModel -> processModel.setExperimentId(experimentId));
}
if (!isExperimentExist(experimentId)) {
@@ -97,31 +97,31 @@ public class ExperimentRepository extends AbstractRepository<ExperimentModel, Ex
}
}
- if (experimentEntity.getExperimentInputs() != null) {
+ if (experimentEntity.getExperimentInputsList() != null) {
logger.debug("Populating the Primary Key of ExperimentInput objects for the Experiment");
experimentEntity
- .getExperimentInputs()
+ .getExperimentInputsList()
.forEach(experimentInputEntity -> experimentInputEntity.setExperimentId(experimentId));
}
- if (experimentEntity.getExperimentOutputs() != null) {
+ if (experimentEntity.getExperimentOutputsList() != null) {
logger.debug("Populating the Primary Key of ExperimentOutput objects for the Experiment");
experimentEntity
- .getExperimentOutputs()
+ .getExperimentOutputsList()
.forEach(experimentOutputEntity -> experimentOutputEntity.setExperimentId(experimentId));
}
- if (experimentEntity.getExperimentStatus() != null) {
+ if (experimentEntity.getExperimentStatusList() != null) {
logger.debug("Populating the Primary Key of ExperimentStatus objects for the Experiment");
experimentEntity
- .getExperimentStatus()
+ .getExperimentStatusList()
.forEach(experimentStatusEntity -> experimentStatusEntity.setExperimentId(experimentId));
}
- if (experimentEntity.getErrors() != null) {
+ if (experimentEntity.getErrorsList() != null) {
logger.debug("Populating the Primary Key of ExperimentError objects for the Experiment");
experimentEntity
- .getErrors()
+ .getErrorsList()
.forEach(experimentErrorEntity -> experimentErrorEntity.setExperimentId(experimentId));
}
return execute(entityManager -> entityManager.merge(experimentEntity));
@@ -129,14 +129,16 @@ public class ExperimentRepository extends AbstractRepository<ExperimentModel, Ex
public String addExperiment(ExperimentModel experimentModel) throws RegistryException {
- ExperimentStatus experimentStatus = new ExperimentStatus();
- experimentStatus.setState(ExperimentState.CREATED);
- experimentStatus.setTimeOfStateChange(
- AiravataUtils.getCurrentTimestamp().getTime());
- experimentModel.addToExperimentStatus(experimentStatus);
+ ExperimentStatus experimentStatus = ExperimentStatus.newBuilder()
+ .setState(ExperimentState.CREATED)
+ .setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime())
+ .build();
String expName = experimentModel.getExperimentName();
// This is to avoid overflow of experiment id size. Total experiment id length is <= 50 + UUID
- experimentModel.setExperimentId(AiravataUtils.getId(expName.substring(0, Math.min(expName.length(), 50))));
+ experimentModel = experimentModel.toBuilder()
+ .addExperimentStatus(experimentStatus)
+ .setExperimentId(AiravataUtils.getId(expName.substring(0, Math.min(expName.length(), 50))))
+ .build();
return saveExperimentModelData(experimentModel);
}
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentStatusRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentStatusRepository.java
index 9566969d35..bcf5aa082f 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentStatusRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentStatusRepository.java
@@ -28,9 +28,9 @@ import org.apache.airavata.execution.model.ExperimentStatusPK;
import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.ExpCatalogUtils;
import org.apache.airavata.execution.util.cpi.RegistryException;
-import org.apache.airavata.model.experiment.ExperimentModel;
-import org.apache.airavata.model.status.ExperimentState;
-import org.apache.airavata.model.status.ExperimentStatus;
+import org.apache.airavata.model.experiment.proto.ExperimentModel;
+import org.apache.airavata.model.status.proto.ExperimentState;
+import org.apache.airavata.model.status.proto.ExperimentStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -97,7 +97,7 @@ public class ExperimentStatusRepository
public ExperimentStatus getExperimentStatus(String experimentId) throws RegistryException {
ExperimentRepository experimentRepository = new ExperimentRepository();
ExperimentModel experimentModel = experimentRepository.getExperiment(experimentId);
- List<ExperimentStatus> experimentStatusList = experimentModel.getExperimentStatus();
+ List<ExperimentStatus> experimentStatusList = experimentModel.getExperimentStatusList();
if (experimentStatusList.size() == 0) {
logger.debug("ExperimentStatus list is empty");
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentSummaryRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentSummaryRepository.java
index 659d572516..a70d2ca318 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentSummaryRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/ExperimentSummaryRepository.java
@@ -34,9 +34,9 @@ import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.cpi.RegistryException;
import org.apache.airavata.execution.util.cpi.ResultOrderType;
-import org.apache.airavata.model.experiment.ExperimentStatistics;
-import org.apache.airavata.model.experiment.ExperimentSummaryModel;
-import org.apache.airavata.model.status.ExperimentState;
+import org.apache.airavata.model.experiment.proto.ExperimentStatistics;
+import org.apache.airavata.model.experiment.proto.ExperimentSummaryModel;
+import org.apache.airavata.model.status.proto.ExperimentState;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayRepository.java
index cd923fe828..23a51d4ac9 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayRepository.java
@@ -31,7 +31,7 @@ import org.apache.airavata.execution.util.AbstractRepository;
import org.apache.airavata.execution.util.DBConstants;
import org.apache.airavata.execution.util.QueryConstants;
import org.apache.airavata.execution.util.cpi.RegistryException;
-import org.apache.airavata.model.workspace.Gateway;
+import org.apache.airavata.model.workspace.proto.Gateway;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayUsageReportingCommandRepository.java b/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayUsageReportingCommandRepository.java
index 038ac439e7..86dad234ad 100644
--- a/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayUsageReportingCommandRepository.java
+++ b/airavata-api/src/main/java/org/apache/airavata/execution/repository/GatewayUsageReportingCommandRepository.java
@@ -24,7 +24,7 @@ import org.apache.airavata.execution.model.GatewayUsageReportingCommandEntity;
import org.apache.airavata.execution.model.GatewayUsageReportingPK;
... 2114 lines suppressed ...