This is an automated email from the ASF dual-hosted git repository.
lahirujayathilake pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/develop by this push:
new 9e62484f40 spotless apply
9e62484f40 is described below
commit 9e62484f409e0a369a9cfe3dcdf65dc6179343ff
Author: lahiruj <[email protected]>
AuthorDate: Fri Nov 7 20:19:04 2025 -0500
spotless apply
---
.../apache/airavata/agents/api/AgentAdaptor.java | 3 +-
.../api/server/handler/AiravataServerHandler.java | 131 +++++++++++++++------
.../airavata/helix/adaptor/SSHJAgentAdaptor.java | 41 +++++--
.../airavata/helix/adaptor/SSHJStorageAdaptor.java | 3 +-
.../airavata/helix/agent/ssh/SshAgentAdaptor.java | 3 +-
.../core/support/adaptor/AdaptorSupportImpl.java | 53 +++++++--
.../helix/core/support/adaptor/AgentStore.java | 15 ++-
.../helix/task/api/support/AdaptorSupport.java | 8 +-
8 files changed, 192 insertions(+), 65 deletions(-)
diff --git
a/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
b/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
index 4a9b338991..245cad8c69 100644
---
a/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
+++
b/airavata-api/src/main/java/org/apache/airavata/agents/api/AgentAdaptor.java
@@ -19,11 +19,10 @@
*/
package org.apache.airavata.agents.api;
-import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
-
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
+import org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo;
/**
* TODO: Class level comments please
diff --git
a/airavata-api/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
b/airavata-api/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index e7a29ab87a..cbc637aaa4 100644
---
a/airavata-api/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++
b/airavata-api/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -26,6 +26,8 @@ import org.apache.airavata.accountprovisioning.ConfigParam;
import org.apache.airavata.accountprovisioning.SSHAccountManager;
import org.apache.airavata.accountprovisioning.SSHAccountProvisionerFactory;
import org.apache.airavata.accountprovisioning.SSHAccountProvisionerProvider;
+import org.apache.airavata.agents.api.AgentAdaptor;
+import org.apache.airavata.agents.api.AgentException;
import org.apache.airavata.api.Airavata;
import org.apache.airavata.api.airavata_apiConstants;
import org.apache.airavata.common.exception.AiravataException;
@@ -35,6 +37,7 @@ import org.apache.airavata.common.utils.Constants;
import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.common.utils.ThriftClientPool;
import org.apache.airavata.credential.store.cpi.CredentialStoreService;
+import org.apache.airavata.helix.core.support.adaptor.AdaptorSupportImpl;
import org.apache.airavata.messaging.core.MessageContext;
import org.apache.airavata.messaging.core.MessagingFactory;
import org.apache.airavata.messaging.core.Publisher;
@@ -94,9 +97,6 @@ import org.apache.airavata.model.workspace.Notification;
import org.apache.airavata.model.workspace.Project;
import org.apache.airavata.registry.api.RegistryService;
import org.apache.airavata.registry.api.exception.RegistryServiceException;
-import org.apache.airavata.agents.api.AgentAdaptor;
-import org.apache.airavata.agents.api.AgentException;
-import org.apache.airavata.helix.core.support.adaptor.AdaptorSupportImpl;
import org.apache.airavata.service.security.GatewayGroupsInitializer;
import org.apache.airavata.service.security.interceptor.SecurityCheck;
import org.apache.airavata.sharing.registry.models.*;
@@ -3845,14 +3845,16 @@ public class AiravataServerHandler implements
Airavata.Iface {
@Override
@SecurityCheck
- public StorageVolumeInfo getResourceStorageInfo(AuthzToken authzToken,
String resourceId, String location) throws TException {
+ public StorageVolumeInfo getResourceStorageInfo(AuthzToken authzToken,
String resourceId, String location)
+ throws TException {
String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
String userId = authzToken.getClaimsMap().get(Constants.USER_NAME);
RegistryService.Client regClient = registryClientPool.getResource();
StorageInfoContext context;
try {
- Optional<ComputeResourceDescription> computeResourceOp =
Optional.ofNullable(regClient.getComputeResource(resourceId));
+ Optional<ComputeResourceDescription> computeResourceOp =
+
Optional.ofNullable(regClient.getComputeResource(resourceId));
Optional<StorageResourceDescription> storageResourceOp =
Optional.empty();
if (computeResourceOp.isEmpty()) {
@@ -3860,8 +3862,10 @@ public class AiravataServerHandler implements
Airavata.Iface {
}
if (computeResourceOp.isEmpty() && storageResourceOp.isEmpty()) {
- logger.error("Resource with ID {} not found as either compute
resource or storage resource", resourceId);
- throw new InvalidRequestException("Resource with ID '" +
resourceId + "' not found as either compute resource or storage resource");
+ logger.error(
+ "Resource with ID {} not found as either compute
resource or storage resource", resourceId);
+ throw new InvalidRequestException("Resource with ID '" +
resourceId
+ + "' not found as either compute resource or storage
resource");
}
if (computeResourceOp.isPresent()) {
@@ -7292,8 +7296,7 @@ public class AiravataServerHandler implements
Airavata.Iface {
/**
* To hold storage info context (login username, credential token, and
adaptor)
*/
- private record StorageInfoContext(String loginUserName, String
credentialToken, AgentAdaptor adaptor) {
- }
+ private record StorageInfoContext(String loginUserName, String
credentialToken, AgentAdaptor adaptor) {}
private AiravataClientException clientException(AiravataErrorType
errorType, String parameter) {
AiravataClientException exception = new AiravataClientException();
@@ -7306,15 +7309,20 @@ public class AiravataServerHandler implements
Airavata.Iface {
* Resolves compute resource storage info context (login username,
credential token, and adaptor).
* Handles user preference → group preference fallback for both login and
credentials.
*/
- private StorageInfoContext resolveComputeStorageInfoContext(AuthzToken
authzToken, String gatewayId, String userId, String resourceId) throws
AgentException, TException {
+ private StorageInfoContext resolveComputeStorageInfoContext(
+ AuthzToken authzToken, String gatewayId, String userId, String
resourceId)
+ throws AgentException, TException {
String loginUserName = null;
boolean loginFromUserPref = false;
GroupComputeResourcePreference groupComputePref = null;
GroupResourceProfile groupResourceProfile = null;
- UserComputeResourcePreference userComputePref =
getUserComputeResourcePreference(authzToken, userId, gatewayId, resourceId);
+ UserComputeResourcePreference userComputePref =
+ getUserComputeResourcePreference(authzToken, userId,
gatewayId, resourceId);
- if (userComputePref != null && userComputePref.getLoginUserName() !=
null && !userComputePref.getLoginUserName().trim().isEmpty()) {
+ if (userComputePref != null
+ && userComputePref.getLoginUserName() != null
+ && !userComputePref.getLoginUserName().trim().isEmpty()) {
loginUserName = userComputePref.getLoginUserName();
loginFromUserPref = true;
logger.debug("Using user preference login username: {}",
loginUserName);
@@ -7327,11 +7335,15 @@ public class AiravataServerHandler implements
Airavata.Iface {
if (groupComputePrefs != null && !groupComputePrefs.isEmpty())
{
for (GroupComputeResourcePreference groupPref :
groupComputePrefs) {
- if
(resourceId.equals(groupPref.getComputeResourceId()) &&
groupPref.getLoginUserName() != null &&
!groupPref.getLoginUserName().trim().isEmpty()) {
+ if (resourceId.equals(groupPref.getComputeResourceId())
+ && groupPref.getLoginUserName() != null
+ &&
!groupPref.getLoginUserName().trim().isEmpty()) {
loginUserName = groupPref.getLoginUserName();
groupComputePref = groupPref;
groupResourceProfile = groupProfile;
- logger.debug("Using login username from group
compute resource preference for resource {}", resourceId);
+ logger.debug(
+ "Using login username from group compute
resource preference for resource {}",
+ resourceId);
break;
}
}
@@ -7350,35 +7362,60 @@ public class AiravataServerHandler implements
Airavata.Iface {
String credentialToken;
if (loginFromUserPref) {
// Login username came from user preference. Use user preference
token → user profile token
- if (userComputePref != null &&
userComputePref.getResourceSpecificCredentialStoreToken() != null &&
!userComputePref.getResourceSpecificCredentialStoreToken().trim().isEmpty()) {
+ if (userComputePref != null
+ &&
userComputePref.getResourceSpecificCredentialStoreToken() != null
+ && !userComputePref
+ .getResourceSpecificCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
credentialToken =
userComputePref.getResourceSpecificCredentialStoreToken();
} else {
UserResourceProfile userResourceProfile =
getUserResourceProfile(authzToken, userId, gatewayId);
- if (userResourceProfile == null ||
userResourceProfile.getCredentialStoreToken() == null ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
+ if (userResourceProfile == null
+ || userResourceProfile.getCredentialStoreToken() ==
null
+ ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
logger.error("No credential store token found for user {}
in gateway {}", userId, gatewayId);
- throw
clientException(AiravataErrorType.AUTHENTICATION_FAILURE, "No credential store
token found for user " + userId + " in gateway " + gatewayId);
+ throw clientException(
+ AiravataErrorType.AUTHENTICATION_FAILURE,
+ "No credential store token found for user " +
userId + " in gateway " + gatewayId);
}
credentialToken =
userResourceProfile.getCredentialStoreToken();
}
} else {
- // Login username came from group preference. Use group preference
token → group profile default token → user profile token (fallback)
- if (groupComputePref != null &&
groupComputePref.getResourceSpecificCredentialStoreToken() != null &&
!groupComputePref.getResourceSpecificCredentialStoreToken().trim().isEmpty()) {
+ // Login username came from group preference. Use group preference
token → group profile default token →
+ // user profile token (fallback)
+ if (groupComputePref != null
+ &&
groupComputePref.getResourceSpecificCredentialStoreToken() != null
+ && !groupComputePref
+ .getResourceSpecificCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
credentialToken =
groupComputePref.getResourceSpecificCredentialStoreToken();
- } else if (groupResourceProfile != null &&
groupResourceProfile.getDefaultCredentialStoreToken() != null &&
!groupResourceProfile.getDefaultCredentialStoreToken().trim().isEmpty()) {
+ } else if (groupResourceProfile != null
+ && groupResourceProfile.getDefaultCredentialStoreToken()
!= null
+ && !groupResourceProfile
+ .getDefaultCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
credentialToken =
groupResourceProfile.getDefaultCredentialStoreToken();
} else {
UserResourceProfile userResourceProfile =
getUserResourceProfile(authzToken, userId, gatewayId);
- if (userResourceProfile == null ||
userResourceProfile.getCredentialStoreToken() == null ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
+ if (userResourceProfile == null
+ || userResourceProfile.getCredentialStoreToken() ==
null
+ ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
logger.error("No credential store token found for user {}
in gateway {}", userId, gatewayId);
- throw
clientException(AiravataErrorType.AUTHENTICATION_FAILURE, "No credential store
token found for compute resource " + resourceId);
+ throw clientException(
+ AiravataErrorType.AUTHENTICATION_FAILURE,
+ "No credential store token found for compute
resource " + resourceId);
}
credentialToken =
userResourceProfile.getCredentialStoreToken();
}
}
- AgentAdaptor adaptor =
AdaptorSupportImpl.getInstance().fetchComputeSSHAdaptor(gatewayId, resourceId,
credentialToken, userId, loginUserName);
+ AgentAdaptor adaptor = AdaptorSupportImpl.getInstance()
+ .fetchComputeSSHAdaptor(gatewayId, resourceId,
credentialToken, userId, loginUserName);
logger.info("Resolved resource {} as compute resource to fetch storage
details", resourceId);
return new StorageInfoContext(loginUserName, credentialToken, adaptor);
@@ -7388,19 +7425,25 @@ public class AiravataServerHandler implements
Airavata.Iface {
* Resolves storage resource storage info context (login username,
credential token, and adaptor).
* Handles user preference → gateway preference fallback for both login
and credentials.
*/
- private StorageInfoContext resolveStorageStorageInfoContext(AuthzToken
authzToken, String gatewayId, String userId, String resourceId) throws
AgentException, TException {
+ private StorageInfoContext resolveStorageStorageInfoContext(
+ AuthzToken authzToken, String gatewayId, String userId, String
resourceId)
+ throws AgentException, TException {
UserStoragePreference userStoragePref =
getUserStoragePreference(authzToken, userId, gatewayId, resourceId);
StoragePreference storagePref =
getGatewayStoragePreference(authzToken, gatewayId, resourceId);
String loginUserName;
boolean loginFromUserPref;
- if (userStoragePref != null && userStoragePref.getLoginUserName() !=
null && !userStoragePref.getLoginUserName().trim().isEmpty()) {
+ if (userStoragePref != null
+ && userStoragePref.getLoginUserName() != null
+ && !userStoragePref.getLoginUserName().trim().isEmpty()) {
loginUserName = userStoragePref.getLoginUserName();
loginFromUserPref = true;
logger.debug("Using login username from user storage preference
for resource {}", resourceId);
- } else if (storagePref != null && storagePref.getLoginUserName() !=
null && !storagePref.getLoginUserName().trim().isEmpty()) {
+ } else if (storagePref != null
+ && storagePref.getLoginUserName() != null
+ && !storagePref.getLoginUserName().trim().isEmpty()) {
loginUserName = storagePref.getLoginUserName();
loginFromUserPref = false;
logger.debug("Using login username from gateway storage preference
for resource {}", resourceId);
@@ -7414,34 +7457,56 @@ public class AiravataServerHandler implements
Airavata.Iface {
String credentialToken;
if (loginFromUserPref) {
// Login came from user preference. Use user preference token or
user profile token
- if (userStoragePref != null &&
userStoragePref.getResourceSpecificCredentialStoreToken() != null &&
!userStoragePref.getResourceSpecificCredentialStoreToken().trim().isEmpty()) {
+ if (userStoragePref != null
+ &&
userStoragePref.getResourceSpecificCredentialStoreToken() != null
+ && !userStoragePref
+ .getResourceSpecificCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
credentialToken =
userStoragePref.getResourceSpecificCredentialStoreToken();
logger.debug("Using login username from user preference for
resource {}", resourceId);
} else {
UserResourceProfile userResourceProfile =
getUserResourceProfile(authzToken, userId, gatewayId);
- if (userResourceProfile == null ||
userResourceProfile.getCredentialStoreToken() == null ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
+ if (userResourceProfile == null
+ || userResourceProfile.getCredentialStoreToken() ==
null
+ ||
userResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
logger.error("No credential store token found for user {}
in gateway {}", userId, gatewayId);
- throw
clientException(AiravataErrorType.AUTHENTICATION_FAILURE, "No credential store
token found for user " + userId + " in gateway " + gatewayId);
+ throw clientException(
+ AiravataErrorType.AUTHENTICATION_FAILURE,
+ "No credential store token found for user " +
userId + " in gateway " + gatewayId);
}
credentialToken =
userResourceProfile.getCredentialStoreToken();
}
} else {
// Login came from gateway preference. Use gateway preference
token or gateway profile token
- if (storagePref != null &&
storagePref.getResourceSpecificCredentialStoreToken() != null &&
!storagePref.getResourceSpecificCredentialStoreToken().trim().isEmpty()) {
+ if (storagePref != null
+ && storagePref.getResourceSpecificCredentialStoreToken()
!= null
+ && !storagePref
+ .getResourceSpecificCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
credentialToken =
storagePref.getResourceSpecificCredentialStoreToken();
} else {
GatewayResourceProfile gatewayResourceProfile =
getGatewayResourceProfile(authzToken, gatewayId);
- if (gatewayResourceProfile == null ||
gatewayResourceProfile.getCredentialStoreToken() == null ||
gatewayResourceProfile.getCredentialStoreToken().trim().isEmpty()) {
+ if (gatewayResourceProfile == null
+ || gatewayResourceProfile.getCredentialStoreToken() ==
null
+ || gatewayResourceProfile
+ .getCredentialStoreToken()
+ .trim()
+ .isEmpty()) {
logger.error("No credential store token found for gateway
{}", gatewayId);
- throw
clientException(AiravataErrorType.AUTHENTICATION_FAILURE, "No credential store
token found for gateway " + gatewayId);
+ throw clientException(
+ AiravataErrorType.AUTHENTICATION_FAILURE,
+ "No credential store token found for gateway " +
gatewayId);
}
credentialToken =
gatewayResourceProfile.getCredentialStoreToken();
}
}
- AgentAdaptor adaptor =
AdaptorSupportImpl.getInstance().fetchStorageSSHAdaptor(gatewayId, resourceId,
credentialToken, userId, loginUserName);
+ AgentAdaptor adaptor = AdaptorSupportImpl.getInstance()
+ .fetchStorageSSHAdaptor(gatewayId, resourceId,
credentialToken, userId, loginUserName);
logger.info("Resolved resource {} as storage resource to fetch storage
details", resourceId);
return new StorageInfoContext(loginUserName, credentialToken, adaptor);
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
index 410b57dc60..9e9caaefc1 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJAgentAdaptor.java
@@ -602,7 +602,9 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
if (targetLocation == null || targetLocation.trim().isEmpty()) {
CommandOutput homeOutput = executeCommand("echo $HOME", null);
- if (homeOutput.getExitCode() != 0 || homeOutput.getStdOut() ==
null || homeOutput.getStdOut().trim().isEmpty()) {
+ if (homeOutput.getExitCode() != 0
+ || homeOutput.getStdOut() == null
+ || homeOutput.getStdOut().trim().isEmpty()) {
logger.error("Failed to determine user's home directory:
{}", homeOutput.getStdError());
throw new AgentException("Failed to determine user's home
directory: " + homeOutput.getStdError());
}
@@ -618,13 +620,21 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
CommandOutput dfBytesOutput = executeCommand(dfBytesCommand, null);
if (dfHumanOutput.getExitCode() != 0) {
- logger.error("Failed to execute df command for location {}:
{}", targetLocation, dfHumanOutput.getStdError());
- throw new AgentException("Failed to execute df command for
location " + targetLocation + ": " + dfHumanOutput.getStdError());
+ logger.error(
+ "Failed to execute df command for location {}: {}",
+ targetLocation,
+ dfHumanOutput.getStdError());
+ throw new AgentException("Failed to execute df command for
location " + targetLocation + ": "
+ + dfHumanOutput.getStdError());
}
if (dfBytesOutput.getExitCode() != 0) {
- logger.error("Failed to execute df command for location {}:
{}", targetLocation, dfBytesOutput.getStdError());
- throw new AgentException("Failed to execute df command for
location " + targetLocation + ": " + dfBytesOutput.getStdError());
+ logger.error(
+ "Failed to execute df command for location {}: {}",
+ targetLocation,
+ dfBytesOutput.getStdError());
+ throw new AgentException("Failed to execute df command for
location " + targetLocation + ": "
+ + dfBytesOutput.getStdError());
}
return parseDfOutput(dfHumanOutput.getStdOut(),
dfBytesOutput.getStdOut(), targetLocation);
@@ -635,15 +645,19 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
}
}
- private StorageVolumeInfo parseDfOutput(String dfHumanOutput, String
dfBytesOutput, String targetLocation) throws AgentException {
+ private StorageVolumeInfo parseDfOutput(String dfHumanOutput, String
dfBytesOutput, String targetLocation)
+ throws AgentException {
try {
// Parse df -P -T -h output (POSIX format with filesystem type)
String[] humanLines = dfHumanOutput.split("\n");
String[] bytesLines = dfBytesOutput.split("\n");
if (humanLines.length < 2 || bytesLines.length < 2) {
- logger.error("Unexpected df output format while parsing
storage volume info for location {}", targetLocation);
- throw new AgentException("Unexpected df output format while
parsing storage volume info for location " + targetLocation);
+ logger.error(
+ "Unexpected df output format while parsing storage
volume info for location {}",
+ targetLocation);
+ throw new AgentException(
+ "Unexpected df output format while parsing storage
volume info for location " + targetLocation);
}
// Skip the header line and get the data line
@@ -655,8 +669,12 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
String[] bytesFields = bytesDataLine.split("\\s+");
if (humanFields.length < 7 || bytesFields.length < 7) {
- logger.error("Unexpected df output format - insufficient
fields while parsing storage volume info for location {}", targetLocation);
- throw new AgentException("Unexpected df output format -
insufficient fields while parsing storage volume info for location " +
targetLocation);
+ logger.error(
+ "Unexpected df output format - insufficient fields
while parsing storage volume info for location {}",
+ targetLocation);
+ throw new AgentException(
+ "Unexpected df output format - insufficient fields
while parsing storage volume info for location "
+ + targetLocation);
}
String filesystemType = humanFields[1]; // ext4, xfs, etc.
@@ -702,7 +720,8 @@ public class SSHJAgentAdaptor implements AgentAdaptor {
} catch (Exception e) {
logger.error("Error parsing df output: {} for location {}",
e.getMessage(), targetLocation, e);
- throw new AgentException("Error parsing df output: " +
e.getMessage() + " for location " + targetLocation, e);
+ throw new AgentException(
+ "Error parsing df output: " + e.getMessage() + " for
location " + targetLocation, e);
}
}
}
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
index d309cdb632..b1a6c4e800 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/adaptor/SSHJStorageAdaptor.java
@@ -110,7 +110,8 @@ public class SSHJStorageAdaptor extends SSHJAgentAdaptor
implements StorageResou
}
@Override
- public
org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo
getStorageVolumeInfo(String location) throws AgentException {
+ public
org.apache.airavata.model.appcatalog.storageresource.StorageVolumeInfo
getStorageVolumeInfo(String location)
+ throws AgentException {
return super.getStorageVolumeInfo(location);
}
}
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
b/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
index 96a0eeed74..40096595b2 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/agent/ssh/SshAgentAdaptor.java
@@ -543,7 +543,8 @@ public class SshAgentAdaptor implements AgentAdaptor {
@Override
public StorageVolumeInfo getStorageVolumeInfo(String location) {
- throw new UnsupportedOperationException("Operation not supported by
SshAgentAdaptor. Use SSHJAgentAdaptor instead.");
+ throw new UnsupportedOperationException(
+ "Operation not supported by SshAgentAdaptor. Use
SSHJAgentAdaptor instead.");
}
private static class DefaultUserInfo implements UserInfo,
UIKeyboardInteractive {
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
index 4fbbcc58a2..06d01f39bb 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AdaptorSupportImpl.java
@@ -19,6 +19,7 @@
*/
package org.apache.airavata.helix.core.support.adaptor;
+import java.util.Optional;
import org.apache.airavata.agents.api.AgentAdaptor;
import org.apache.airavata.agents.api.AgentException;
import org.apache.airavata.agents.api.StorageResourceAdaptor;
@@ -30,8 +31,6 @@ import
org.apache.airavata.model.data.movement.DataMovementProtocol;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.Optional;
-
/**
* TODO: Class level comments please
*
@@ -136,14 +135,26 @@ public class AdaptorSupportImpl implements AdaptorSupport
{
}
@Override
- public AgentAdaptor fetchComputeSSHAdaptor(String gatewayId, String
resourceId, String authToken, String gatewayUserId, String loginUserName)
throws AgentException {
+ public AgentAdaptor fetchComputeSSHAdaptor(
+ String gatewayId, String resourceId, String authToken, String
gatewayUserId, String loginUserName)
+ throws AgentException {
String cacheKey = "compute-" + resourceId;
- logger.debug("Fetching SSH adaptor for compute resource {} with token
{} for gateway user {} with login username {}", resourceId, authToken,
gatewayUserId, loginUserName);
+ logger.debug(
+ "Fetching SSH adaptor for compute resource {} with token {}
for gateway user {} with login username {}",
+ resourceId,
+ authToken,
+ gatewayUserId,
+ loginUserName);
Optional<AgentAdaptor> adaptorOp = agentStore.getSSHAdaptor(cacheKey,
authToken, gatewayUserId, loginUserName);
if (adaptorOp.isPresent()) {
- logger.debug("Reusing SSH adaptor for gateway {}, compute resource
{}, gateway user {}, login username {}", gatewayId, resourceId, gatewayUserId,
loginUserName);
+ logger.debug(
+ "Reusing SSH adaptor for gateway {}, compute resource {},
gateway user {}, login username {}",
+ gatewayId,
+ resourceId,
+ gatewayUserId,
+ loginUserName);
return adaptorOp.get();
} else {
@@ -153,7 +164,12 @@ public class AdaptorSupportImpl implements AdaptorSupport {
return adaptorOp.get();
} else {
- logger.debug("Could not find SSH adaptor for gateway {},
compute resource {}, gateway user {}, login username {}. Creating new one",
gatewayId, resourceId, gatewayUserId, loginUserName);
+ logger.debug(
+ "Could not find SSH adaptor for gateway {},
compute resource {}, gateway user {}, login username {}. Creating new one",
+ gatewayId,
+ resourceId,
+ gatewayUserId,
+ loginUserName);
SSHJAgentAdaptor agentAdaptor = new SSHJAgentAdaptor();
agentAdaptor.init(resourceId, gatewayId, loginUserName,
authToken);
@@ -166,14 +182,26 @@ public class AdaptorSupportImpl implements AdaptorSupport
{
}
@Override
- public StorageResourceAdaptor fetchStorageSSHAdaptor(String gatewayId,
String resourceId, String authToken, String gatewayUserId, String
loginUserName) throws AgentException {
+ public StorageResourceAdaptor fetchStorageSSHAdaptor(
+ String gatewayId, String resourceId, String authToken, String
gatewayUserId, String loginUserName)
+ throws AgentException {
String cacheKey = "storage-" + resourceId;
- logger.debug("Fetching SSH adaptor for storage resource {} with token
{} for gateway user {} with login username {}", resourceId, authToken,
gatewayUserId, loginUserName);
+ logger.debug(
+ "Fetching SSH adaptor for storage resource {} with token {}
for gateway user {} with login username {}",
+ resourceId,
+ authToken,
+ gatewayUserId,
+ loginUserName);
Optional<AgentAdaptor> adaptorOp = agentStore.getSSHAdaptor(cacheKey,
authToken, gatewayUserId, loginUserName);
if (adaptorOp.isPresent()) {
- logger.debug("Reusing SSH adaptor for gateway {}, storage resource
{}, gateway user {}, login username {}", gatewayId, resourceId, gatewayUserId,
loginUserName);
+ logger.debug(
+ "Reusing SSH adaptor for gateway {}, storage resource {},
gateway user {}, login username {}",
+ gatewayId,
+ resourceId,
+ gatewayUserId,
+ loginUserName);
return (StorageResourceAdaptor) adaptorOp.get();
} else {
@@ -182,7 +210,12 @@ public class AdaptorSupportImpl implements AdaptorSupport {
if (adaptorOp.isPresent()) {
return (StorageResourceAdaptor) adaptorOp.get();
} else {
- logger.debug("Could not find SSH adaptor for gateway {},
storage resource {}, gateway user {}, login username {}. Creating new one",
gatewayId, resourceId, gatewayUserId, loginUserName);
+ logger.debug(
+ "Could not find SSH adaptor for gateway {},
storage resource {}, gateway user {}, login username {}. Creating new one",
+ gatewayId,
+ resourceId,
+ gatewayUserId,
+ loginUserName);
SSHJStorageAdaptor storageAdaptor = new
SSHJStorageAdaptor();
storageAdaptor.init(resourceId, gatewayId, loginUserName,
authToken);
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
index c9a0943686..29e0f6399e 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/core/support/adaptor/AgentStore.java
@@ -114,7 +114,8 @@ public class AgentStore {
userToAdaptorMap.put(userId, storageResourceAdaptor);
}
- public Optional<AgentAdaptor> getSSHAdaptor(String resourceId, String
authToken, String gatewayUserId, String loginUserName) {
+ public Optional<AgentAdaptor> getSSHAdaptor(
+ String resourceId, String authToken, String gatewayUserId, String
loginUserName) {
Map<String, Map<String, Map<String, AgentAdaptor>>>
tokenToGatewayUserMap = sshAdaptorCache.get(resourceId);
if (tokenToGatewayUserMap != null) {
@@ -136,11 +137,15 @@ public class AgentStore {
}
}
- public void putSSHAdaptor(String resourceId, String authToken, String
gatewayUserId, String loginUserName, AgentAdaptor adaptor) {
+ public void putSSHAdaptor(
+ String resourceId, String authToken, String gatewayUserId, String
loginUserName, AgentAdaptor adaptor) {
- Map<String, Map<String, Map<String, AgentAdaptor>>>
tokenToGatewayUserMap = sshAdaptorCache.computeIfAbsent(resourceId, k -> new
HashMap<>());
- Map<String, Map<String, AgentAdaptor>> gatewayUserToLoginUserMap =
tokenToGatewayUserMap.computeIfAbsent(authToken, k -> new HashMap<>());
- Map<String, AgentAdaptor> loginUserToAdaptorMap =
gatewayUserToLoginUserMap.computeIfAbsent(gatewayUserId, k -> new HashMap<>());
+ Map<String, Map<String, Map<String, AgentAdaptor>>>
tokenToGatewayUserMap =
+ sshAdaptorCache.computeIfAbsent(resourceId, k -> new
HashMap<>());
+ Map<String, Map<String, AgentAdaptor>> gatewayUserToLoginUserMap =
+ tokenToGatewayUserMap.computeIfAbsent(authToken, k -> new
HashMap<>());
+ Map<String, AgentAdaptor> loginUserToAdaptorMap =
+ gatewayUserToLoginUserMap.computeIfAbsent(gatewayUserId, k ->
new HashMap<>());
loginUserToAdaptorMap.put(loginUserName, adaptor);
}
diff --git
a/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
b/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
index 7e27b2a62b..404d03175b 100644
---
a/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
+++
b/airavata-api/src/main/java/org/apache/airavata/helix/task/api/support/AdaptorSupport.java
@@ -42,7 +42,11 @@ public interface AdaptorSupport {
String gatewayId, String storageResourceId, DataMovementProtocol
protocol, String authToken, String userId)
throws AgentException;
- AgentAdaptor fetchComputeSSHAdaptor(String gatewayId, String resourceId,
String authToken, String gatewayUserId, String loginUserName) throws
AgentException;
+ AgentAdaptor fetchComputeSSHAdaptor(
+ String gatewayId, String resourceId, String authToken, String
gatewayUserId, String loginUserName)
+ throws AgentException;
- StorageResourceAdaptor fetchStorageSSHAdaptor(String gatewayId, String
resourceId, String authToken, String gatewayUserId, String loginUserName)
throws AgentException;
+ StorageResourceAdaptor fetchStorageSSHAdaptor(
+ String gatewayId, String resourceId, String authToken, String
gatewayUserId, String loginUserName)
+ throws AgentException;
}