You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2014/05/15 01:16:25 UTC
git commit: updating clone experiment method
Repository: airavata
Updated Branches:
refs/heads/master 88e16cf4e -> bf702a5d9
updating clone experiment method
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/bf702a5d
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/bf702a5d
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/bf702a5d
Branch: refs/heads/master
Commit: bf702a5d97ce14c46d29fa01cdacf82aa191459d
Parents: 88e16cf
Author: Chathuri Wimalasena <ka...@gmail.com>
Authored: Wed May 14 19:16:15 2014 -0400
Committer: Chathuri Wimalasena <ka...@gmail.com>
Committed: Wed May 14 19:16:15 2014 -0400
----------------------------------------------------------------------
.../server/handler/AiravataServerHandler.java | 39 +++--
.../java/org/apache/airavata/api/Airavata.java | 146 +++++++++----------
.../src/main/resources/lib/Airavata.cpp | 24 +--
.../src/main/resources/lib/Airavata.h | 30 ++--
.../resources/lib/Airavata_server.skeleton.cpp | 2 +-
.../resources/lib/Airavata/API/Airavata.php | 35 ++---
.../client/samples/CreateLaunchExperiment.java | 3 +-
.../airavataAPI.thrift | 7 +-
8 files changed, 147 insertions(+), 139 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
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 0fb3e29..653c8c2 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
@@ -251,6 +251,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public Experiment getExperiment(String airavataExperimentId) throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException, AiravataSystemException, TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
return (Experiment)registry.get(RegistryModelType.EXPERIMENT, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while retrieving the experiment", e);
@@ -287,6 +290,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public void updateExperiment(String airavataExperimentId, Experiment experiment) throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException, AiravataSystemException, TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
registry.update(RegistryModelType.EXPERIMENT, experiment, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while updating experiment", e);
@@ -298,6 +304,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public void updateExperimentConfiguration(String airavataExperimentId, UserConfigurationData userConfiguration) throws TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
registry.add(ChildDataType.EXPERIMENT_CONFIGURATION_DATA, userConfiguration, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while updating user configuration", e);
@@ -309,6 +318,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public void updateResourceScheduleing(String airavataExperimentId, ComputationalResourceScheduling resourceScheduling) throws TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
registry.add(ChildDataType.COMPUTATIONAL_RESOURCE_SCHEDULING, resourceScheduling, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while updating scheduling info", e);
@@ -362,6 +374,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public ExperimentStatus getExperimentStatus(String airavataExperimentId) throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException, AiravataSystemException, TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
return (ExperimentStatus)registry.get(RegistryModelType.EXPERIMENT_STATUS, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while retrieving the experiment status", e);
@@ -373,6 +388,9 @@ public class AiravataServerHandler implements Airavata.Iface {
public List<DataObjectType> getExperimentOutputs(String airavataExperimentId) throws TException {
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
return (List<DataObjectType>)registry.get(RegistryModelType.EXPERIMENT_OUTPUT, airavataExperimentId);
} catch (Exception e) {
logger.error("Error while retrieving the experiment outputs", e);
@@ -384,6 +402,9 @@ public class AiravataServerHandler implements Airavata.Iface {
Map<String, JobStatus> jobStatus = new HashMap<String, JobStatus>();
try {
registry = RegistryFactory.getDefaultRegistry();
+ if (!registry.isExist(RegistryModelType.EXPERIMENT, airavataExperimentId)){
+ throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
+ }
List<Object> workflowNodes = registry.get(RegistryModelType.WORKFLOW_NODE_DETAIL, Constants.FieldConstants.WorkflowNodeConstants.EXPERIMENT_ID, airavataExperimentId);
if (workflowNodes != null && !workflowNodes.isEmpty()){
for (Object wf : workflowNodes){
@@ -478,10 +499,8 @@ public class AiravataServerHandler implements Airavata.Iface {
* This is the experiment identifier that already exists in the system. Will use this experimentID to retrieve
* user configuration which is used with the clone experiment.
*
- * @param updatedExperiment
- * Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
- * the basic experiment metadata like the name and description, intended user, the gateway identifier and if the experiment
- * should be shared public by default.
+ * @param newExperiementName
+ * experiment name that should be used in the cloned experiment
*
* @return
* The server-side generated airavata experiment globally unique identifier for the newly cloned experiment.
@@ -511,18 +530,20 @@ public class AiravataServerHandler implements Airavata.Iface {
*
*
* @param existingExperimentID
- * @param updatedExperiment
+ * @param newExperiementName
*/
@Override
- public String cloneExperiment(String existingExperimentID, Experiment updatedExperiment) throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException, AiravataSystemException, TException {
+ public String cloneExperiment(String existingExperimentID, String newExperiementName) throws InvalidRequestException, ExperimentNotFoundException, AiravataClientException, AiravataSystemException, TException {
try {
registry = RegistryFactory.getDefaultRegistry();
if (!registry.isExist(RegistryModelType.EXPERIMENT, existingExperimentID)){
throw new ExperimentNotFoundException("Requested experiment id " + existingExperimentID + " does not exist in the system..");
}
- UserConfigurationData previousConfiguration = (UserConfigurationData)registry.get(RegistryModelType.EXPERIMENT_CONFIGURATION_DATA, existingExperimentID);
- updatedExperiment.setUserConfigurationData(previousConfiguration);
- return (String)registry.add(ParentDataType.EXPERIMENT, updatedExperiment);
+ Experiment existingExperiment = (Experiment)registry.get(RegistryModelType.EXPERIMENT, existingExperimentID);
+ if (newExperiementName != null && !newExperiementName.equals("")){
+ existingExperiment.setName(newExperiementName);
+ }
+ return (String)registry.add(ParentDataType.EXPERIMENT, existingExperiment);
} catch (Exception e) {
logger.error("Error while cloning the experiment with existing configuration...", e);
throw new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR);
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
index f8c9b49..9ef5de9 100644
--- a/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
+++ b/airavata-api/airavata-api-stubs/src/main/java/org/apache/airavata/api/Airavata.java
@@ -300,9 +300,8 @@ import org.slf4j.LoggerFactory;
* Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata.
* The client has to subsequently update this configuration if needed and launch the cloned experiment.
*
- * @param existingExperimentID
- * This is the experiment identifier that already exists in the system. Will use this experimentID to retrieve
- * user configuration which is used with the clone experiment.
+ * @param newExperiementName
+ * experiment name that should be used in the cloned experiment
*
* @param updatedExperiment
* Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
@@ -337,9 +336,9 @@ import org.slf4j.LoggerFactory;
*
*
* @param existingExperimentID
- * @param updatedExperiment
+ * @param newExperiementName
*/
- public String cloneExperiment(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
+ public String cloneExperiment(String existingExperimentID, String newExperiementName) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException;
/**
* Terminate a running experiment.
@@ -416,7 +415,7 @@ import org.slf4j.LoggerFactory;
public void getJobStatuses(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
- public void cloneExperiment(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
+ public void cloneExperiment(String existingExperimentID, String newExperiementName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
public void terminateExperiment(String airavataExperimentId, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException;
@@ -944,17 +943,17 @@ import org.slf4j.LoggerFactory;
throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "getJobStatuses failed: unknown result");
}
- public String cloneExperiment(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
+ public String cloneExperiment(String existingExperimentID, String newExperiementName) throws org.apache.airavata.api.error.InvalidRequestException, org.apache.airavata.api.error.ExperimentNotFoundException, org.apache.airavata.api.error.AiravataClientException, org.apache.airavata.api.error.AiravataSystemException, org.apache.thrift.TException
{
- send_cloneExperiment(existingExperimentID, updatedExperiment);
+ send_cloneExperiment(existingExperimentID, newExperiementName);
return recv_cloneExperiment();
}
- public void send_cloneExperiment(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment) throws org.apache.thrift.TException
+ public void send_cloneExperiment(String existingExperimentID, String newExperiementName) throws org.apache.thrift.TException
{
cloneExperiment_args args = new cloneExperiment_args();
args.setExistingExperimentID(existingExperimentID);
- args.setUpdatedExperiment(updatedExperiment);
+ args.setNewExperiementName(newExperiementName);
sendBase("cloneExperiment", args);
}
@@ -1583,27 +1582,27 @@ import org.slf4j.LoggerFactory;
}
}
- public void cloneExperiment(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
+ public void cloneExperiment(String existingExperimentID, String newExperiementName, org.apache.thrift.async.AsyncMethodCallback resultHandler) throws org.apache.thrift.TException {
checkReady();
- cloneExperiment_call method_call = new cloneExperiment_call(existingExperimentID, updatedExperiment, resultHandler, this, ___protocolFactory, ___transport);
+ cloneExperiment_call method_call = new cloneExperiment_call(existingExperimentID, newExperiementName, resultHandler, this, ___protocolFactory, ___transport);
this.___currentMethod = method_call;
___manager.call(method_call);
}
public static class cloneExperiment_call extends org.apache.thrift.async.TAsyncMethodCall {
private String existingExperimentID;
- private org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment;
- public cloneExperiment_call(String existingExperimentID, org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+ private String newExperiementName;
+ public cloneExperiment_call(String existingExperimentID, String newExperiementName, org.apache.thrift.async.AsyncMethodCallback resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
super(client, protocolFactory, transport, resultHandler, false);
this.existingExperimentID = existingExperimentID;
- this.updatedExperiment = updatedExperiment;
+ this.newExperiementName = newExperiementName;
}
public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("cloneExperiment", org.apache.thrift.protocol.TMessageType.CALL, 0));
cloneExperiment_args args = new cloneExperiment_args();
args.setExistingExperimentID(existingExperimentID);
- args.setUpdatedExperiment(updatedExperiment);
+ args.setNewExperiementName(newExperiementName);
args.write(prot);
prot.writeMessageEnd();
}
@@ -2148,7 +2147,7 @@ import org.slf4j.LoggerFactory;
public cloneExperiment_result getResult(I iface, cloneExperiment_args args) throws org.apache.thrift.TException {
cloneExperiment_result result = new cloneExperiment_result();
try {
- result.success = iface.cloneExperiment(args.existingExperimentID, args.updatedExperiment);
+ result.success = iface.cloneExperiment(args.existingExperimentID, args.newExperiementName);
} catch (org.apache.airavata.api.error.InvalidRequestException ire) {
result.ire = ire;
} catch (org.apache.airavata.api.error.ExperimentNotFoundException enf) {
@@ -3375,7 +3374,7 @@ import org.slf4j.LoggerFactory;
}
public void start(I iface, cloneExperiment_args args, org.apache.thrift.async.AsyncMethodCallback<String> resultHandler) throws TException {
- iface.cloneExperiment(args.existingExperimentID, args.updatedExperiment,resultHandler);
+ iface.cloneExperiment(args.existingExperimentID, args.newExperiementName,resultHandler);
}
}
@@ -19648,7 +19647,7 @@ import org.slf4j.LoggerFactory;
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("cloneExperiment_args");
private static final org.apache.thrift.protocol.TField EXISTING_EXPERIMENT_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("existingExperimentID", org.apache.thrift.protocol.TType.STRING, (short)1);
- private static final org.apache.thrift.protocol.TField UPDATED_EXPERIMENT_FIELD_DESC = new org.apache.thrift.protocol.TField("updatedExperiment", org.apache.thrift.protocol.TType.STRUCT, (short)2);
+ private static final org.apache.thrift.protocol.TField NEW_EXPERIEMENT_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("newExperiementName", org.apache.thrift.protocol.TType.STRING, (short)2);
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
static {
@@ -19657,12 +19656,12 @@ import org.slf4j.LoggerFactory;
}
public String existingExperimentID; // required
- public org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment; // required
+ public String newExperiementName; // required
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
@SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
EXISTING_EXPERIMENT_ID((short)1, "existingExperimentID"),
- UPDATED_EXPERIMENT((short)2, "updatedExperiment");
+ NEW_EXPERIEMENT_NAME((short)2, "newExperiementName");
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
@@ -19679,8 +19678,8 @@ import org.slf4j.LoggerFactory;
switch(fieldId) {
case 1: // EXISTING_EXPERIMENT_ID
return EXISTING_EXPERIMENT_ID;
- case 2: // UPDATED_EXPERIMENT
- return UPDATED_EXPERIMENT;
+ case 2: // NEW_EXPERIEMENT_NAME
+ return NEW_EXPERIEMENT_NAME;
default:
return null;
}
@@ -19726,8 +19725,8 @@ import org.slf4j.LoggerFactory;
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
tmpMap.put(_Fields.EXISTING_EXPERIMENT_ID, new org.apache.thrift.meta_data.FieldMetaData("existingExperimentID", org.apache.thrift.TFieldRequirementType.DEFAULT,
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
- tmpMap.put(_Fields.UPDATED_EXPERIMENT, new org.apache.thrift.meta_data.FieldMetaData("updatedExperiment", org.apache.thrift.TFieldRequirementType.DEFAULT,
- new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, org.apache.airavata.model.workspace.experiment.Experiment.class)));
+ tmpMap.put(_Fields.NEW_EXPERIEMENT_NAME, new org.apache.thrift.meta_data.FieldMetaData("newExperiementName", org.apache.thrift.TFieldRequirementType.DEFAULT,
+ new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
metaDataMap = Collections.unmodifiableMap(tmpMap);
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(cloneExperiment_args.class, metaDataMap);
}
@@ -19737,11 +19736,11 @@ import org.slf4j.LoggerFactory;
public cloneExperiment_args(
String existingExperimentID,
- org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment)
+ String newExperiementName)
{
this();
this.existingExperimentID = existingExperimentID;
- this.updatedExperiment = updatedExperiment;
+ this.newExperiementName = newExperiementName;
}
/**
@@ -19751,8 +19750,8 @@ import org.slf4j.LoggerFactory;
if (other.isSetExistingExperimentID()) {
this.existingExperimentID = other.existingExperimentID;
}
- if (other.isSetUpdatedExperiment()) {
- this.updatedExperiment = new org.apache.airavata.model.workspace.experiment.Experiment(other.updatedExperiment);
+ if (other.isSetNewExperiementName()) {
+ this.newExperiementName = other.newExperiementName;
}
}
@@ -19763,7 +19762,7 @@ import org.slf4j.LoggerFactory;
@Override
public void clear() {
this.existingExperimentID = null;
- this.updatedExperiment = null;
+ this.newExperiementName = null;
}
public String getExistingExperimentID() {
@@ -19790,27 +19789,27 @@ import org.slf4j.LoggerFactory;
}
}
- public org.apache.airavata.model.workspace.experiment.Experiment getUpdatedExperiment() {
- return this.updatedExperiment;
+ public String getNewExperiementName() {
+ return this.newExperiementName;
}
- public cloneExperiment_args setUpdatedExperiment(org.apache.airavata.model.workspace.experiment.Experiment updatedExperiment) {
- this.updatedExperiment = updatedExperiment;
+ public cloneExperiment_args setNewExperiementName(String newExperiementName) {
+ this.newExperiementName = newExperiementName;
return this;
}
- public void unsetUpdatedExperiment() {
- this.updatedExperiment = null;
+ public void unsetNewExperiementName() {
+ this.newExperiementName = null;
}
- /** Returns true if field updatedExperiment is set (has been assigned a value) and false otherwise */
- public boolean isSetUpdatedExperiment() {
- return this.updatedExperiment != null;
+ /** Returns true if field newExperiementName is set (has been assigned a value) and false otherwise */
+ public boolean isSetNewExperiementName() {
+ return this.newExperiementName != null;
}
- public void setUpdatedExperimentIsSet(boolean value) {
+ public void setNewExperiementNameIsSet(boolean value) {
if (!value) {
- this.updatedExperiment = null;
+ this.newExperiementName = null;
}
}
@@ -19824,11 +19823,11 @@ import org.slf4j.LoggerFactory;
}
break;
- case UPDATED_EXPERIMENT:
+ case NEW_EXPERIEMENT_NAME:
if (value == null) {
- unsetUpdatedExperiment();
+ unsetNewExperiementName();
} else {
- setUpdatedExperiment((org.apache.airavata.model.workspace.experiment.Experiment)value);
+ setNewExperiementName((String)value);
}
break;
@@ -19840,8 +19839,8 @@ import org.slf4j.LoggerFactory;
case EXISTING_EXPERIMENT_ID:
return getExistingExperimentID();
- case UPDATED_EXPERIMENT:
- return getUpdatedExperiment();
+ case NEW_EXPERIEMENT_NAME:
+ return getNewExperiementName();
}
throw new IllegalStateException();
@@ -19856,8 +19855,8 @@ import org.slf4j.LoggerFactory;
switch (field) {
case EXISTING_EXPERIMENT_ID:
return isSetExistingExperimentID();
- case UPDATED_EXPERIMENT:
- return isSetUpdatedExperiment();
+ case NEW_EXPERIEMENT_NAME:
+ return isSetNewExperiementName();
}
throw new IllegalStateException();
}
@@ -19884,12 +19883,12 @@ import org.slf4j.LoggerFactory;
return false;
}
- boolean this_present_updatedExperiment = true && this.isSetUpdatedExperiment();
- boolean that_present_updatedExperiment = true && that.isSetUpdatedExperiment();
- if (this_present_updatedExperiment || that_present_updatedExperiment) {
- if (!(this_present_updatedExperiment && that_present_updatedExperiment))
+ boolean this_present_newExperiementName = true && this.isSetNewExperiementName();
+ boolean that_present_newExperiementName = true && that.isSetNewExperiementName();
+ if (this_present_newExperiementName || that_present_newExperiementName) {
+ if (!(this_present_newExperiementName && that_present_newExperiementName))
return false;
- if (!this.updatedExperiment.equals(that.updatedExperiment))
+ if (!this.newExperiementName.equals(that.newExperiementName))
return false;
}
@@ -19919,12 +19918,12 @@ import org.slf4j.LoggerFactory;
return lastComparison;
}
}
- lastComparison = Boolean.valueOf(isSetUpdatedExperiment()).compareTo(other.isSetUpdatedExperiment());
+ lastComparison = Boolean.valueOf(isSetNewExperiementName()).compareTo(other.isSetNewExperiementName());
if (lastComparison != 0) {
return lastComparison;
}
- if (isSetUpdatedExperiment()) {
- lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.updatedExperiment, other.updatedExperiment);
+ if (isSetNewExperiementName()) {
+ lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.newExperiementName, other.newExperiementName);
if (lastComparison != 0) {
return lastComparison;
}
@@ -19957,11 +19956,11 @@ import org.slf4j.LoggerFactory;
}
first = false;
if (!first) sb.append(", ");
- sb.append("updatedExperiment:");
- if (this.updatedExperiment == null) {
+ sb.append("newExperiementName:");
+ if (this.newExperiementName == null) {
sb.append("null");
} else {
- sb.append(this.updatedExperiment);
+ sb.append(this.newExperiementName);
}
first = false;
sb.append(")");
@@ -19971,9 +19970,6 @@ import org.slf4j.LoggerFactory;
public void validate() throws org.apache.thrift.TException {
// check for required fields
// check for sub-struct validity
- if (updatedExperiment != null) {
- updatedExperiment.validate();
- }
}
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -20018,11 +20014,10 @@ import org.slf4j.LoggerFactory;
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
- case 2: // UPDATED_EXPERIMENT
- if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
- struct.updatedExperiment = new org.apache.airavata.model.workspace.experiment.Experiment();
- struct.updatedExperiment.read(iprot);
- struct.setUpdatedExperimentIsSet(true);
+ case 2: // NEW_EXPERIEMENT_NAME
+ if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+ struct.newExperiementName = iprot.readString();
+ struct.setNewExperiementNameIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
@@ -20047,9 +20042,9 @@ import org.slf4j.LoggerFactory;
oprot.writeString(struct.existingExperimentID);
oprot.writeFieldEnd();
}
- if (struct.updatedExperiment != null) {
- oprot.writeFieldBegin(UPDATED_EXPERIMENT_FIELD_DESC);
- struct.updatedExperiment.write(oprot);
+ if (struct.newExperiementName != null) {
+ oprot.writeFieldBegin(NEW_EXPERIEMENT_NAME_FIELD_DESC);
+ oprot.writeString(struct.newExperiementName);
oprot.writeFieldEnd();
}
oprot.writeFieldStop();
@@ -20073,15 +20068,15 @@ import org.slf4j.LoggerFactory;
if (struct.isSetExistingExperimentID()) {
optionals.set(0);
}
- if (struct.isSetUpdatedExperiment()) {
+ if (struct.isSetNewExperiementName()) {
optionals.set(1);
}
oprot.writeBitSet(optionals, 2);
if (struct.isSetExistingExperimentID()) {
oprot.writeString(struct.existingExperimentID);
}
- if (struct.isSetUpdatedExperiment()) {
- struct.updatedExperiment.write(oprot);
+ if (struct.isSetNewExperiementName()) {
+ oprot.writeString(struct.newExperiementName);
}
}
@@ -20094,9 +20089,8 @@ import org.slf4j.LoggerFactory;
struct.setExistingExperimentIDIsSet(true);
}
if (incoming.get(1)) {
- struct.updatedExperiment = new org.apache.airavata.model.workspace.experiment.Experiment();
- struct.updatedExperiment.read(iprot);
- struct.setUpdatedExperimentIsSet(true);
+ struct.newExperiementName = iprot.readString();
+ struct.setNewExperiementNameIsSet(true);
}
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
index e7c868d..66aa916 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.cpp
@@ -3759,9 +3759,9 @@ uint32_t Airavata_cloneExperiment_args::read(::apache::thrift::protocol::TProtoc
}
break;
case 2:
- if (ftype == ::apache::thrift::protocol::T_STRUCT) {
- xfer += this->updatedExperiment.read(iprot);
- this->__isset.updatedExperiment = true;
+ if (ftype == ::apache::thrift::protocol::T_STRING) {
+ xfer += iprot->readString(this->newExperiementName);
+ this->__isset.newExperiementName = true;
} else {
xfer += iprot->skip(ftype);
}
@@ -3786,8 +3786,8 @@ uint32_t Airavata_cloneExperiment_args::write(::apache::thrift::protocol::TProto
xfer += oprot->writeString(this->existingExperimentID);
xfer += oprot->writeFieldEnd();
- xfer += oprot->writeFieldBegin("updatedExperiment", ::apache::thrift::protocol::T_STRUCT, 2);
- xfer += this->updatedExperiment.write(oprot);
+ xfer += oprot->writeFieldBegin("newExperiementName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString(this->newExperiementName);
xfer += oprot->writeFieldEnd();
xfer += oprot->writeFieldStop();
@@ -3803,8 +3803,8 @@ uint32_t Airavata_cloneExperiment_pargs::write(::apache::thrift::protocol::TProt
xfer += oprot->writeString((*(this->existingExperimentID)));
xfer += oprot->writeFieldEnd();
- xfer += oprot->writeFieldBegin("updatedExperiment", ::apache::thrift::protocol::T_STRUCT, 2);
- xfer += (*(this->updatedExperiment)).write(oprot);
+ xfer += oprot->writeFieldBegin("newExperiementName", ::apache::thrift::protocol::T_STRING, 2);
+ xfer += oprot->writeString((*(this->newExperiementName)));
xfer += oprot->writeFieldEnd();
xfer += oprot->writeFieldStop();
@@ -5297,20 +5297,20 @@ void AiravataClient::recv_getJobStatuses(std::map<std::string, ::JobStatus> & _
throw ::apache::thrift::TApplicationException(::apache::thrift::TApplicationException::MISSING_RESULT, "getJobStatuses failed: unknown result");
}
-void AiravataClient::cloneExperiment(std::string& _return, const std::string& existingExperimentID, const ::Experiment& updatedExperiment)
+void AiravataClient::cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperiementName)
{
- send_cloneExperiment(existingExperimentID, updatedExperiment);
+ send_cloneExperiment(existingExperimentID, newExperiementName);
recv_cloneExperiment(_return);
}
-void AiravataClient::send_cloneExperiment(const std::string& existingExperimentID, const ::Experiment& updatedExperiment)
+void AiravataClient::send_cloneExperiment(const std::string& existingExperimentID, const std::string& newExperiementName)
{
int32_t cseqid = 0;
oprot_->writeMessageBegin("cloneExperiment", ::apache::thrift::protocol::T_CALL, cseqid);
Airavata_cloneExperiment_pargs args;
args.existingExperimentID = &existingExperimentID;
- args.updatedExperiment = &updatedExperiment;
+ args.newExperiementName = &newExperiementName;
args.write(oprot_);
oprot_->writeMessageEnd();
@@ -6511,7 +6511,7 @@ void AiravataProcessor::process_cloneExperiment(int32_t seqid, ::apache::thrift:
Airavata_cloneExperiment_result result;
try {
- iface_->cloneExperiment(result.success, args.existingExperimentID, args.updatedExperiment);
+ iface_->cloneExperiment(result.success, args.existingExperimentID, args.newExperiementName);
result.__isset.success = true;
} catch ( ::airavata::api::error::InvalidRequestException &ire) {
result.ire = ire;
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
index 06d5cf0..c12a0dd 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata.h
@@ -32,7 +32,7 @@ class AiravataIf {
virtual void getExperimentStatus( ::ExperimentStatus& _return, const std::string& airavataExperimentId) = 0;
virtual void getExperimentOutputs(std::vector< ::DataObjectType> & _return, const std::string& airavataExperimentId) = 0;
virtual void getJobStatuses(std::map<std::string, ::JobStatus> & _return, const std::string& airavataExperimentId) = 0;
- virtual void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const ::Experiment& updatedExperiment) = 0;
+ virtual void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperiementName) = 0;
virtual void terminateExperiment(const std::string& airavataExperimentId) = 0;
};
@@ -115,7 +115,7 @@ class AiravataNull : virtual public AiravataIf {
void getJobStatuses(std::map<std::string, ::JobStatus> & /* _return */, const std::string& /* airavataExperimentId */) {
return;
}
- void cloneExperiment(std::string& /* _return */, const std::string& /* existingExperimentID */, const ::Experiment& /* updatedExperiment */) {
+ void cloneExperiment(std::string& /* _return */, const std::string& /* existingExperimentID */, const std::string& /* newExperiementName */) {
return;
}
void terminateExperiment(const std::string& /* airavataExperimentId */) {
@@ -2222,21 +2222,21 @@ class Airavata_getJobStatuses_presult {
};
typedef struct _Airavata_cloneExperiment_args__isset {
- _Airavata_cloneExperiment_args__isset() : existingExperimentID(false), updatedExperiment(false) {}
+ _Airavata_cloneExperiment_args__isset() : existingExperimentID(false), newExperiementName(false) {}
bool existingExperimentID;
- bool updatedExperiment;
+ bool newExperiementName;
} _Airavata_cloneExperiment_args__isset;
class Airavata_cloneExperiment_args {
public:
- Airavata_cloneExperiment_args() : existingExperimentID() {
+ Airavata_cloneExperiment_args() : existingExperimentID(), newExperiementName() {
}
virtual ~Airavata_cloneExperiment_args() throw() {}
std::string existingExperimentID;
- ::Experiment updatedExperiment;
+ std::string newExperiementName;
_Airavata_cloneExperiment_args__isset __isset;
@@ -2244,15 +2244,15 @@ class Airavata_cloneExperiment_args {
existingExperimentID = val;
}
- void __set_updatedExperiment(const ::Experiment& val) {
- updatedExperiment = val;
+ void __set_newExperiementName(const std::string& val) {
+ newExperiementName = val;
}
bool operator == (const Airavata_cloneExperiment_args & rhs) const
{
if (!(existingExperimentID == rhs.existingExperimentID))
return false;
- if (!(updatedExperiment == rhs.updatedExperiment))
+ if (!(newExperiementName == rhs.newExperiementName))
return false;
return true;
}
@@ -2275,7 +2275,7 @@ class Airavata_cloneExperiment_pargs {
virtual ~Airavata_cloneExperiment_pargs() throw() {}
const std::string* existingExperimentID;
- const ::Experiment* updatedExperiment;
+ const std::string* newExperiementName;
uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
@@ -2587,8 +2587,8 @@ class AiravataClient : virtual public AiravataIf {
void getJobStatuses(std::map<std::string, ::JobStatus> & _return, const std::string& airavataExperimentId);
void send_getJobStatuses(const std::string& airavataExperimentId);
void recv_getJobStatuses(std::map<std::string, ::JobStatus> & _return);
- void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const ::Experiment& updatedExperiment);
- void send_cloneExperiment(const std::string& existingExperimentID, const ::Experiment& updatedExperiment);
+ void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperiementName);
+ void send_cloneExperiment(const std::string& existingExperimentID, const std::string& newExperiementName);
void recv_cloneExperiment(std::string& _return);
void terminateExperiment(const std::string& airavataExperimentId);
void send_terminateExperiment(const std::string& airavataExperimentId);
@@ -2841,13 +2841,13 @@ class AiravataMultiface : virtual public AiravataIf {
return;
}
- void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const ::Experiment& updatedExperiment) {
+ void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperiementName) {
size_t sz = ifaces_.size();
size_t i = 0;
for (; i < (sz - 1); ++i) {
- ifaces_[i]->cloneExperiment(_return, existingExperimentID, updatedExperiment);
+ ifaces_[i]->cloneExperiment(_return, existingExperimentID, newExperiementName);
}
- ifaces_[i]->cloneExperiment(_return, existingExperimentID, updatedExperiment);
+ ifaces_[i]->cloneExperiment(_return, existingExperimentID, newExperiementName);
return;
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
index 5fb0668..30e57c0 100644
--- a/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
+++ b/airavata-api/airavata-client-sdks/airavata-cpp-sdk/src/main/resources/lib/Airavata_server.skeleton.cpp
@@ -107,7 +107,7 @@ class AiravataHandler : virtual public AiravataIf {
printf("getJobStatuses\n");
}
- void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const ::Experiment& updatedExperiment) {
+ void cloneExperiment(std::string& _return, const std::string& existingExperimentID, const std::string& newExperiementName) {
// Your implementation goes here
printf("cloneExperiment\n");
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
index 2e31b82..f5661c0 100644
--- a/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
+++ b/airavata-api/airavata-client-sdks/airavata-php-sdk/src/main/resources/lib/Airavata/API/Airavata.php
@@ -34,7 +34,7 @@ interface AiravataIf {
public function getExperimentStatus($airavataExperimentId);
public function getExperimentOutputs($airavataExperimentId);
public function getJobStatuses($airavataExperimentId);
- public function cloneExperiment($existingExperimentID, \Airavata\Model\Workspace\Experiment\Experiment $updatedExperiment);
+ public function cloneExperiment($existingExperimentID, $newExperiementName);
public function terminateExperiment($airavataExperimentId);
}
@@ -1027,17 +1027,17 @@ class AiravataClient implements \Airavata\API\AiravataIf {
throw new \Exception("getJobStatuses failed: unknown result");
}
- public function cloneExperiment($existingExperimentID, \Airavata\Model\Workspace\Experiment\Experiment $updatedExperiment)
+ public function cloneExperiment($existingExperimentID, $newExperiementName)
{
- $this->send_cloneExperiment($existingExperimentID, $updatedExperiment);
+ $this->send_cloneExperiment($existingExperimentID, $newExperiementName);
return $this->recv_cloneExperiment();
}
- public function send_cloneExperiment($existingExperimentID, \Airavata\Model\Workspace\Experiment\Experiment $updatedExperiment)
+ public function send_cloneExperiment($existingExperimentID, $newExperiementName)
{
$args = new \Airavata\API\Airavata_cloneExperiment_args();
$args->existingExperimentID = $existingExperimentID;
- $args->updatedExperiment = $updatedExperiment;
+ $args->newExperiementName = $newExperiementName;
$bin_accel = ($this->output_ instanceof TBinaryProtocolAccelerated) && function_exists('thrift_protocol_write_binary');
if ($bin_accel)
{
@@ -4656,7 +4656,7 @@ class Airavata_cloneExperiment_args {
static $_TSPEC;
public $existingExperimentID = null;
- public $updatedExperiment = null;
+ public $newExperiementName = null;
public function __construct($vals=null) {
if (!isset(self::$_TSPEC)) {
@@ -4666,9 +4666,8 @@ class Airavata_cloneExperiment_args {
'type' => TType::STRING,
),
2 => array(
- 'var' => 'updatedExperiment',
- 'type' => TType::STRUCT,
- 'class' => '\Airavata\Model\Workspace\Experiment\Experiment',
+ 'var' => 'newExperiementName',
+ 'type' => TType::STRING,
),
);
}
@@ -4676,8 +4675,8 @@ class Airavata_cloneExperiment_args {
if (isset($vals['existingExperimentID'])) {
$this->existingExperimentID = $vals['existingExperimentID'];
}
- if (isset($vals['updatedExperiment'])) {
- $this->updatedExperiment = $vals['updatedExperiment'];
+ if (isset($vals['newExperiementName'])) {
+ $this->newExperiementName = $vals['newExperiementName'];
}
}
}
@@ -4709,9 +4708,8 @@ class Airavata_cloneExperiment_args {
}
break;
case 2:
- if ($ftype == TType::STRUCT) {
- $this->updatedExperiment = new \Airavata\Model\Workspace\Experiment\Experiment();
- $xfer += $this->updatedExperiment->read($input);
+ if ($ftype == TType::STRING) {
+ $xfer += $input->readString($this->newExperiementName);
} else {
$xfer += $input->skip($ftype);
}
@@ -4734,12 +4732,9 @@ class Airavata_cloneExperiment_args {
$xfer += $output->writeString($this->existingExperimentID);
$xfer += $output->writeFieldEnd();
}
- if ($this->updatedExperiment !== null) {
- if (!is_object($this->updatedExperiment)) {
- throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
- }
- $xfer += $output->writeFieldBegin('updatedExperiment', TType::STRUCT, 2);
- $xfer += $this->updatedExperiment->write($output);
+ if ($this->newExperiementName !== null) {
+ $xfer += $output->writeFieldBegin('newExperiementName', TType::STRING, 2);
+ $xfer += $output->writeString($this->newExperiementName);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 14e6b68..9113ca5 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -220,8 +220,7 @@ public class CreateLaunchExperiment {
public static String cloneExperiment(Airavata.Client client, String expId) throws TException {
try{
- Experiment experiment = client.getExperiment(expId);
- return client.cloneExperiment("cloneExperiment1", experiment);
+ return client.cloneExperiment(expId, "cloneExperiment1");
}catch (TException e) {
logger.error("Error occured while creating the experiment...", e.getMessage());
throw new TException(e);
http://git-wip-us.apache.org/repos/asf/airavata/blob/bf702a5d/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
----------------------------------------------------------------------
diff --git a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
index 45294be..b534adb 100644
--- a/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
+++ b/airavata-api/thrift-interface-descriptions/airavataAPI.thrift
@@ -378,9 +378,8 @@ service Airavata {
* Clone an specified experiment with a new name. A copy of the experiment configuration is made and is persisted with new metadata.
* The client has to subsequently update this configuration if needed and launch the cloned experiment.
*
- * @param existingExperimentID
- * This is the experiment identifier that already exists in the system. Will use this experimentID to retrieve
- * user configuration which is used with the clone experiment.
+ * @param newExperiementName
+ * experiment name that should be used in the cloned experiment
*
* @param updatedExperiment
* Once an experiment is cloned, to disambiguate, the users are suggested to provide new metadata. This will again require
@@ -415,7 +414,7 @@ service Airavata {
*
*/
string cloneExperiment(1: string existingExperimentID,
- 2: experimentModel.Experiment updatedExperiment)
+ 2: string newExperiementName)
throws (1: airavataErrors.InvalidRequestException ire,
2: airavataErrors.ExperimentNotFoundException enf,
3: airavataErrors.AiravataClientException ace,