| 1163 | === Experiment Profiles === |
| 1164 | |
| 1165 | Experiments have profiles attached to them, as users, circles, and projects do. Information in a profile is metadata about the experiment, intended for human consumption. This is in opposition to an aspect which is intended for the testbed or experiment infrastructure to interpret. |
| 1166 | |
| 1167 | The calls for manipulating an experiment profile are very similar to other profiles: |
| 1168 | |
| 1169 | To get a profile schema, for example to create an empty web page, |
| 1170 | |
| 1171 | * '''Service:''' Experiments |
| 1172 | * '''Operation:''' getProfileDescription |
| 1173 | * '''Input Parameters:''' |
| 1174 | * '''Return Values:''' |
| 1175 | * ExperimentId - always empty |
| 1176 | * A list of profile elements each containing |
| 1177 | * Name - a string, the element's name |
| 1178 | * DataType - a string giving the element's |
| 1179 | * string |
| 1180 | * integer |
| 1181 | * double |
| 1182 | * binary/opaque |
| 1183 | * Value - a string containing the element's value |
| 1184 | * Access - a string describing the access values (values [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html here]) |
| 1185 | * Optional - a flag true if the field is optional (must be present but may be empty) |
| 1186 | * Removable - a flag true if the field can be removed |
| 1187 | * Description - a string explaining the field |
| 1188 | * Format - a regular expression that can be used to validate the field entry (may be null, and generally is for optional fields) |
| 1189 | * FormatDescription - A brief, natural language description of the field input constraints, e.g. "A valid e-mail address" or "only numbers and spaces". |
| 1190 | * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first |
| 1191 | * LengthHint - an integer suggesting how long an input firld should be presented |
| 1192 | |
| 1193 | To read an experiment's profile. |
| 1194 | |
| 1195 | * '''Service:''' Experiments |
| 1196 | * '''Operation:''' getExperimentProfile |
| 1197 | * '''Input Parameters:''' |
| 1198 | * eid - a string naming the experiment to be retrieved |
| 1199 | * '''Return Values:''' |
| 1200 | * ExperimentId - the experiment whose profile is returned |
| 1201 | * A list of profile elements each containing |
| 1202 | * Name - a string, the element's name |
| 1203 | * DataType - a string giving the element's |
| 1204 | * string |
| 1205 | * integer |
| 1206 | * double |
| 1207 | * binary/opaque |
| 1208 | * Value - a string containing the element's value |
| 1209 | * Access - a string describing the access values (Defined [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html here]) |
| 1210 | * Optional - a flag true if the field is optional (must be present but may be empty) |
| 1211 | * Removable - a flag true if the field can be removed |
| 1212 | * Description - a string explaining the field |
| 1213 | * Format - a regular expression that can be used to validate the field entry (may be null, and generally is for optional fields) |
| 1214 | * FormatDescription - A brief, natural language description of the field input constraints, e.g. "A valid e-mail address" or "only numbers and spaces". |
| 1215 | * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first |
| 1216 | * LengthHint - an integer suggesting how long an input field should be presented |
| 1217 | |
| 1218 | Finally a user can modify an experiment profile: |
| 1219 | |
| 1220 | * '''Service:''' Experiments |
| 1221 | * '''Operation:''' changeExperimentProfile |
| 1222 | * '''Input Parameters:''' |
| 1223 | * Eid - the experiment's profile to modify |
| 1224 | * A list of change requests. Each request contains |
| 1225 | * Name - the name of the field to change |
| 1226 | * Value - the new value of the field |
| 1227 | * Delete - a flag, if true delete the field rather than modify it |
| 1228 | * '''Return Values:''' |
| 1229 | * A list of responses each containing |
| 1230 | * Name - astring with the name of the field |
| 1231 | * Success - a flag indicating if the request succeeded |
| 1232 | * Reason - a string indicating the reason if Success is false |
| 1233 | |
| 1234 | |
| 1235 | === Manipulating Profile Attributes === |
| 1236 | |
| 1237 | Administrators may add attributes to experiment profiles or remove them. That is to say, add a schema (including format constraints and descriptions), not set a value for a project. |
| 1238 | |
| 1239 | Creating an attribute: |
| 1240 | |
| 1241 | * '''Service:''' Experiments |
| 1242 | * '''Operation:''' createExperimentAttribute |
| 1243 | * '''Input Parameters:''' |
| 1244 | * Name - the attribute name |
| 1245 | * Type - the type (STRING, INT, FLOAT, OPAQUE) |
| 1246 | * Optional - a boolean, true if this attribute is optional |
| 1247 | * Access - a string: the user's ability to modify (READ_WRITE, READ_ONLY, WRITE_ONLY, NO_ACCESS) |
| 1248 | * Description - natural language description of the field (optional) |
| 1249 | * Format - a regular expression describing the format (optional) |
| 1250 | * Formatdescription - a natural language explanation of the format (optional) |
| 1251 | * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first |
| 1252 | * LengthHint - an integer suggesting how long an input |
| 1253 | * Def - default value of the attribute (will be set for all users) |
| 1254 | * '''Return Values:''' |
| 1255 | * a boolean, true if the attribute was created |
| 1256 | |
| 1257 | And removing an attribute: |
| 1258 | |
| 1259 | * '''Service:''' Experiments |
| 1260 | * '''Operation:''' removeExperimentAttribute |
| 1261 | * '''Input Parameters:''' |
| 1262 | * Name - the attribute name |
| 1263 | * '''Return Values:''' |
| 1264 | * a boolean, true if the attribute was removed |
| 1265 | |
| 1266 | Finally administrators can modify profile attributes: |
| 1267 | |
| 1268 | * '''Service:''' Experiments |
| 1269 | * '''Operation:''' modifyExperimentAttribute |
| 1270 | * '''Input Parameters:''' |
| 1271 | * Name - the attribute name |
| 1272 | * Type - the type (STRING, INT, FLOAT, OPAQUE) |
| 1273 | * Optional - a boolean, true if this attribute is optional |
| 1274 | * Access - a string: the user's ability to modify (READ_WRITE, READ_ONLY, WRITE_ONLY, NO_ACCESS) |
| 1275 | * Description - natural language description of the field (optional) |
| 1276 | * Format - a regular expression describing the format (optional) |
| 1277 | * Formatdescription - a natural language explanation of the format (optional) |
| 1278 | * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first |
| 1279 | * LengthHint - an integer suggesting how long an input |
| 1280 | * '''Return Values:''' |
| 1281 | * a boolean, true if the attribute was created |
| 1282 | |
| 1283 | |