You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2019/05/08 16:28:16 UTC
[airavata] branch develop updated: AIRAVATA-3030 Bug fix: always
update exp entity in sharing registry
This is an automated email from the ASF dual-hosted git repository.
machristie 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 44d176a AIRAVATA-3030 Bug fix: always update exp entity in sharing registry
44d176a is described below
commit 44d176ad8e5b9745401d1aef788d384eadb73bc6
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Wed May 8 12:28:04 2019 -0400
AIRAVATA-3030 Bug fix: always update exp entity in sharing registry
---
.../api/server/handler/AiravataServerHandler.java | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 306d791..7b59f00 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -1629,27 +1629,33 @@ public class AiravataServerHandler implements Airavata.Iface {
SharingRegistryService.Client sharingClient = sharingClientPool.getResource();
try {
ExperimentModel experimentModel = regClient.getExperiment(airavataExperimentId);
+ String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
if(ServerSettings.isEnableSharing() && !authzToken.getClaimsMap().get(org.apache.airavata.common.utils.Constants.USER_NAME).equals(experimentModel.getUserName())
|| !authzToken.getClaimsMap().get(org.apache.airavata.common.utils.Constants.GATEWAY_ID).equals(experimentModel.getGatewayId())){
try {
// Verify WRITE access
- String gatewayId = authzToken.getClaimsMap().get(Constants.GATEWAY_ID);
String userId = authzToken.getClaimsMap().get(Constants.USER_NAME);
if (!sharingClient.userHasAccess(gatewayId, userId + "@" + gatewayId,
airavataExperimentId, gatewayId + ":WRITE")){
throw new AuthorizationException("User does not have permission to access this resource");
}
- // Update name, description and parent on Entity
- Entity entity = sharingClient.getEntity(gatewayId, airavataExperimentId);
- entity.setName(experiment.getExperimentName());
- entity.setDescription(experiment.getDescription());
- entity.setParentEntityId(experiment.getProjectId());
- sharingClient.updateEntity(entity);
} catch (Exception e) {
throw new AuthorizationException("User does not have permission to access this resource");
}
}
+ try {
+ // Update name, description and parent on Entity
+ // TODO: update the experiment via a DB event
+ Entity entity = sharingClient.getEntity(gatewayId, airavataExperimentId);
+ entity.setName(experiment.getExperimentName());
+ entity.setDescription(experiment.getDescription());
+ entity.setParentEntityId(experiment.getProjectId());
+ sharingClient.updateEntity(entity);
+ } catch (Exception e) {
+ throw new Exception("Failed to update entity in sharing registry", e);
+ }
+
regClient.updateExperiment(airavataExperimentId, experiment);
registryClientPool.returnResource(regClient);
sharingClientPool.returnResource(sharingClient);