1025 | | * Userid - a string, if given return all experiments this user can see (equivalent to giving userid:userid as the circle parameter) |
1026 | | * ExperimentRE - a string containing a regular expression matched against project names (may be omitted) |
1027 | | * Owner - a string holding the owner of experiments to find (may be omitted) |
1028 | | * Circle - a string holding a circle name, if given restrict the results to those that can be read by this circle |
1029 | | * Components - a list of strings containing the fields to include. Each is one of |
1030 | | * EXPERIMENT_TOPOLOGY - include the topology |
1031 | | * EXPERIMENT_ACTIONS - include the actions |
1032 | | * EXPERIMENT_CONSTRAINTS - include constraints |
1033 | | * EXPERIMENT_DATACOLLECTION - include data collection |
1034 | | * EXPERIMENT_RESOURCES - include resources needed or allocated |
1035 | | * EXPERIMENT_CONTAINERS - include components if realized |
1036 | | * EXPERIMENT_LOG - include realization log and fault |
1037 | | * EXPERIMENT_PERMISSIONS - include project permissions |
1038 | | * TopologyFormat - a optional string naming the topology format. It is one of |
1039 | | * TOPOLOGY_TOPDL - return a topdl file |
1040 | | * TOPOLOGY_NS2 - return an ns2 file |
1041 | | * TopologyFilter - an optional filter for limiting scope of the topology file format TBD |
1042 | | * ActionFormat - an optional 32-bit int naming the action file format (values TBD) |
1043 | | * ActionFilter - an optional filter for limiting scope of the constraint file format TBD |
1044 | | * ConstraintFormat - an optional 32-bit int naming the constraint format (values TBD) |
1045 | | * ConstraintFilter - an optional filter for limiting scope of the constraint file format TBD |
1046 | | * DataCollectionFormat - an optional 32-bit int naming the data collection format (values TBD) |
1047 | | * DataCollectionFilter - an optional filter for limiting scope of the data collection file format TBD |
1048 | | * ResourceFilter - an optional filter for limiting scope of the resouces returned format TBD |
1049 | | * ContainerFilter - an optional filter for limiting scope of the constainers returned format TBD |
1050 | | |
| 1026 | * Userid - a string, if given return all experiments this user can see |
| 1027 | * Lib - a string, the name of a library. Only experiments in that library will be returned |
| 1028 | * Regex - a string containing a regular expression matched against experiment names |
| 1029 | * QueryAspects - an array of aspects used to scope the aspect search Each aspect has the fields described above. The readOnly, data, and dataReference fields are all ignored. If the name is present, it much match. If the type is given it must also match. If a type is given the subtype field further scopes the search. A missing type field selects aspects without any subtype. A specific subtype selects only aspects that match both type and subtype, and the distinguished value "*" matches any subtype. A subtype with a null type is invalid. |
| 1030 | * listOnly - a boolean, true if the aspects returned should not contain data. This avoids unnecessary large data transfers |
1055 | | * Project - an optional string. If present the experiment is realized under this project |
1056 | | * Topology - an optional file describing the experiment topology subject to filters and format constraints |
1057 | | * Actions - an optional file describing the experiment actions subject to filters and format constraints |
1058 | | * Constraints - an optional file describing the experiment constraints subject to filters and format constraints |
1059 | | * DataCollection - an optional file describing the experiment data collection subject to filters and format constraints |
1060 | | * Containers - an optional list with the following fields describing the containers in the experimnet, if it is realized. Subject to filtering. |
1061 | | * Name - the container name |
1062 | | * State - a string indicating state (Up, Down, Configured, Pinned, None) |
1063 | | * Type - a string indicating the container type |
1064 | | * Resources - an optional list of structures giving resources needed by or allocated to the experiment, subject to filtering. |
1065 | | * Name - resource name |
1066 | | * Type - resource type |
1067 | | * State - a string, one of |
1068 | | * "Unrealized", "Realized", "Changing", "Pinned" (Pinned means that some modification other than realization is underway) |
1069 | | * StateDetail - a string giving additional state information. values TBD |
1070 | | * Log - an optional file containing messages from the last realization attempt for debugging |
1071 | | * FaultInfo - an optional structure containing the high level error message (if any) from the last realization. It contains the error fields from a DeterFault: |
1072 | | * ErrorCode - a 32-bit integer encoding the type of error. Constants are available in the [http://www.isi.edu/~faber/tmp/doc/net/deterlab/testbed/api/DeterFault.html javadoc for DeterFault]. Values are: |
1073 | | * access - access denied |
1074 | | * request - bad request |
1075 | | * internal - internal server error |
1076 | | * ErrorString - a string describing the broad error |
1077 | | * DetailString - a string describing the details that caused the error |
1078 | | * A list of strings giving the permissions of this user with respect to this experiment. It can include |
1079 | | * EXPERIMENT_READ - the permission to read the experiment data structure |
1080 | | * EXPERIMENT_WRITE - the permission to modify the experiment data structure |
1081 | | * EXPERIMENT_REALIZE - the permission to realize the experiment |
1082 | | * list of circles and their corresponding permissions. A user's permissions is the union of the circles it is in. Each entry in the list contains |
1083 | | * Circle name |
1084 | | * A list of strings giving the permissions of this circle with respect to this experiment. It can include |
1085 | | * EXPERIMENT_READ - the permission to read the experiment data structure |
1086 | | * EXPERIMENT_WRITE - the permission to modify the experiment data structure |
1087 | | * EXPERIMENT_REALIZE - the permission to realize the experiment |
| 1035 | * Aspects - a list of aspect structures as defined above |
| 1036 | * ACL - a list of structures of the form |
| 1037 | * Name - a string the circle name |
| 1038 | * Permissions - a list of strings containing this circle's permissions. Permissions are from [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html#net.deterlab.testbed.api.Permissions this table] |
| 1039 | |
1097 | | * Name - a string containing a new experiment's name |
1098 | | * Topology - an optional file describing the experiment topology |
1099 | | * Actions - an optional file describing the experiment actions |
1100 | | * Constraints - an optional file describing the experiment constraints s |
1101 | | * DataCollection - an optional file describing the experiment data collection |
1102 | | * list of circles and their corresponding permissions. A user's permissions is the union of the circles it is in. Each entry in the list contains |
1103 | | * Circle name |
1104 | | * A list of strings giving the permissions of this circle with respect to this experiment. It can include |
1105 | | * EXPERIMENT_READ - the permission to read the experiment data structure |
1106 | | * EXPERIMENT_WRITE - the permission to modify the experiment data structure |
1107 | | * EXPERIMENT_REALIZE - the permission to realize the experiment |
| 1050 | * Aspects - a list of aspects as defined above |
| 1051 | * AccessLists - a list of access list entries - a list of structures of the form |
| 1052 | * Name - a string the circle name |
| 1053 | * Permissions - a list of strings containing this circle's permissions.Permissions are from [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html#net.deterlab.testbed.api.Permissions this table] |
| 1054 | * Profile - a list of profile attribute value pairs |
1111 | | An experiment is modified using: |
1112 | | |
1113 | | * '''Service:''' Experiments |
1114 | | * '''Operation:''' modifyExperiment |
1115 | | * '''Input Parameters:''' |
1116 | | * Userid - the user making the request (the owner on success) |
1117 | | * Owner - the experiment owner |
1118 | | * Name - a string containing the experiment's name |
1119 | | * Topology - an optional file describing the experiment topology |
1120 | | * Actions - an optional file describing the experiment actions |
1121 | | * Constraints - an optional file describing the experiment constraints s |
1122 | | * DataCollection - an optional file describing the experiment data collection |
1123 | | * list of circles and their corresponding permissions. A user's permissions is the union of the circles it is in. Each entry in the list contains |
1124 | | * Circle name |
1125 | | * A list of strings giving the permissions of this circle with respect to this experiment. It can include |
1126 | | * EXPERIMENT_READ - the permission to read the experiment data structure |
1127 | | * EXPERIMENT_WRITE - the permission to modify the experiment data structure |
1128 | | * EXPERIMENT_REALIZE - the permission to realize the experiment |
1129 | | * '''Return Values:''' |
1130 | | * a boolean, true if the creation succeeded |
1131 | | |
1132 | | |
1133 | | Omitted arguments are not overwritten. To delete a field supply an empty description. |
1134 | | |
1135 | | There will also be filter-based modification interfaces, but these are TBD. |
| 1058 | Creating an experiment with one aspect may result in additional sub-aspects appearing, as well as modifications to other aspects. |
| 1070 | |
| 1071 | === Modifying Experiments === |
| 1072 | |
| 1073 | Because aspects are somewhat free-form and can be interrelated, the interface for manipulating them is simple. Aspects can be added and removed. |
| 1074 | |
| 1075 | * '''Service:''' Experiments |
| 1076 | * '''Operation:''' addExperimentAspects |
| 1077 | * '''Input Parameters:''' |
| 1078 | * Name - a string containing the experiment's name |
| 1079 | * Aspects - a list of aspects as defined above |
| 1080 | * '''Return Values:''' |
| 1081 | * a boolean, true if the addition succeeded |
| 1082 | |
| 1083 | As with creation, adding an aspect may result in additional sub-aspects appearing, as well as modifications to other aspects. |
| 1084 | |
| 1085 | * '''Service:''' Experiments |
| 1086 | * '''Operation:''' removeExperimentAspects |
| 1087 | * '''Input Parameters:''' |
| 1088 | * Name - a string containing the experiment's name |
| 1089 | * Aspects - a list of aspects as defined above |
| 1090 | * '''Return Values:''' |
| 1091 | * a boolean, true if the removal succeeded |
| 1092 | |
| 1093 | As with creation, adding an aspect may result in additional sub-aspects appearing, as well as modifications to other aspects. |
| 1094 | |
| 1095 | * '''Service:''' Experiments |
| 1096 | * '''Operation:''' addExperimentACL |
| 1097 | * '''Input Parameters:''' |
| 1098 | * Name - a string containing the experiment's name |
| 1099 | * AccessLists - a list of access list entries - a list of structures of the form |
| 1100 | * Name - a string the circle name |
| 1101 | * Permissions - a list of strings containing this circle's permissions.Permissions are from [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html#net.deterlab.testbed.api.Permissions this table] |
| 1102 | * '''Return Values:''' |
| 1103 | * a boolean, true if the removal succeeded |
| 1104 | |
| 1105 | * '''Service:''' Experiments |
| 1106 | * '''Operation:''' removeExperimentACL |
| 1107 | * '''Input Parameters:''' |
| 1108 | * Name - a string containing the experiment's name |
| 1109 | * AccessLists - a list circles to remove from the ACL |
| 1110 | * '''Return Values:''' |
| 1111 | * a boolean, true if the removal succeeded |
| 1112 | |
| 1113 | The owner can give ownership to another user. |
| 1114 | |
| 1115 | * '''Service:''' Experiments |
| 1116 | * '''Operation:''' setOwner |
| 1117 | * '''Input Parameters:''' |
| 1118 | * Name - a string containing the experiment's name |
| 1119 | * newOwner - a string, the new owner's UID |
| 1120 | * '''Return Values:''' |
| 1121 | * a boolean, true if the removal succeeded |
| 1122 | |
| 1123 | |
| 1124 | We expect to add filter-based interfaces in the future as well. |