Changes between Version 31 and Version 32 of NewTestbedAPISpec


Ignore:
Timestamp:
Jul 8, 2014 5:52:09 PM (10 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewTestbedAPISpec

    v31 v32  
    10131013   A boolean, true if the aspect can be modified.
    10141014
    1015 Experiments also include an access control list (ACL) that lists the permissions that circles are granted to this experiment.
     1015Each experiment also includes an access control list (ACL) that lists the permissions that members of a given circle are granted to this experiment.
    10161016
    10171017[http://www.isi.edu/~faber/tmp/DeterAPI/doc/net/deterlab/testbed/api/Experiments.html experiments javadoc]
     
    12301230=== Manipulating Profile Attributes ===
    12311231
    1232 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.
     1232Administrators 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 an experiment.
    12331233
    12341234Creating an attribute:
     
    12751275 * '''Return Values:'''
    12761276  * a boolean, true if the attribute was created
     1277
     1278
     1279== Libraries ==
     1280
     1281The library interface controls managing library contents. The experiment definition is in some flux, which is reflected in this section.
     1282
     1283An library is a collection of experiments, each of which can be manipulated by users with the proper permissions.  By grouping experiments it is easier to collaborate on the experiments as well as providing pools of experiments to use as starting points for new users.
     1284
     1285Each library includes an access control list (ACL) that lists the permissions that mebmers of a given circle are granted to the library.
     1286
     1287
     1288=== Viewing Libraries ===
     1289
     1290One or more libraried can be viewed by an authorized user assuming that user has the proper permissions.  The search can be a regular expression matched against the library name.  To view libraries, call:
     1291
     1292 * '''Service:''' Libraries
     1293 * '''Operation:''' viewLibraries
     1294 * '''Input Parameters:'''
     1295   * Userid - a string, if given return all experiments this user can see
     1296   * Regex - a string containing a regular expression matched against experiment names
     1297 * '''Return Values:'''
     1298   * One or more structures with the following fields
     1299     * Name - a string containing the experiment name
     1300     * Owner - a string containing the owner's userid
     1301     * Experiments - a list of experiment names
     1302     * ACL - a list of structures of the form
     1303       * Name - a string the circle name
     1304       * 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]
     1305
     1306
     1307=== Creating and Deleting Libraries ===
     1308
     1309A library is created using:
     1310
     1311 * '''Service:''' Libraries
     1312 * '''Operation:''' createLibrary
     1313 * '''Input Parameters:'''
     1314   * Name - a string containing a new experiment's name
     1315   * Userid - the user making the request (the owner on success)
     1316   * Experiments - a list of experiments in the library
     1317   * AccessLists - a list of access list entries - a list of structures of the form
     1318       * Name - a string the circle name
     1319       * 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]
     1320   * Profile - a list of profile attribute value pairs
     1321 * '''Return Values:'''
     1322   * a boolean, true if the creation succeeded
     1323
     1324A library is deleted using:
     1325 
     1326 * '''Service:''' Library
     1327 * '''Operation:''' removeLibrary
     1328 * '''Input Parameters:'''
     1329   * Name - a string containing the library to delete
     1330 * '''Return Values:'''
     1331   * a boolean, true on success
     1332
     1333After {{{removeLibrary}}} succeeds, library is removed from the testbed completely.
     1334
     1335=== Modifying Libraries ===
     1336
     1337Experiments can be added and removed from libraries
     1338
     1339* '''Service:''' Libraries
     1340 * '''Operation:''' addLibraryExperiment
     1341 * '''Input Parameters:'''
     1342   * Name - a string containing the library's name
     1343   * Experiments - a list of experiment names
     1344 * '''Return Values:'''
     1345   * a boolean, true if the addition succeeded
     1346
     1347As with creation, adding an aspect may result in additional sub-aspects appearing, as well as modifications to other aspects.
     1348
     1349* '''Service:''' Libraries
     1350 * '''Operation:''' removeLibraryExperiments
     1351 * '''Input Parameters:'''
     1352   * Name - a string containing the experiment's name
     1353   * Experiments - a list of experiments to remove
     1354 * '''Return Values:'''
     1355   * a boolean, true if the removal succeeded
     1356
     1357
     1358* '''Service:''' Libraires
     1359 * '''Operation:''' addLibraryACL
     1360 * '''Input Parameters:'''
     1361   * Name - a string containing the library's name
     1362   * AccessLists - a list of access list entries - a list of structures of the form
     1363       * Name - a string the circle name
     1364       * 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]
     1365 * '''Return Values:'''
     1366   * a boolean, true if the removal succeeded
     1367
     1368* '''Service:''' Libraries
     1369 * '''Operation:''' removeLibraryACL
     1370 * '''Input Parameters:'''
     1371   * Name - a string containing the library's name
     1372   * AccessLists - a list circles to remove from the ACL
     1373 * '''Return Values:'''
     1374   * a boolean, true if the removal succeeded
     1375
     1376The owner can give ownership to another user.
     1377
     1378* '''Service:''' Library
     1379 * '''Operation:''' setOwner
     1380 * '''Input Parameters:'''
     1381   * Name - a string containing the experiment's name
     1382   * newOwner - a string, the new owner's UID
     1383 * '''Return Values:'''
     1384   * a boolean, true if the removal succeeded
     1385
     1386=== Library Profiles ===
     1387
     1388Libraries have profiles attached to them, as users, circles, and projects do.  Information in a profile is metadata about the library, intended for human consumption.
     1389
     1390The calls for manipulating a library profile are very similar to other profiles:
     1391
     1392To get a profile schema, for example to create an empty web page,
     1393
     1394 * '''Service:''' Libraries
     1395 * '''Operation:''' getProfileDescription
     1396 * '''Input Parameters:'''
     1397 * '''Return Values:'''
     1398   * LibraryId - always empty
     1399   * A list of profile elements each containing
     1400     * Name - a string, the element's name
     1401     * DataType - a string giving the element's
     1402       * string
     1403       * integer
     1404       * double
     1405       * binary/opaque
     1406     * Value - a string containing the element's value
     1407     * Access - a string describing the access values (values [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html here])
     1408     * Optional - a flag true if the field is optional (must be present but may be empty)
     1409     * Removable - a flag true if the field can be removed
     1410     * Description - a string explaining the field
     1411     * Format - a regular expression that can be used to validate the field entry (may be null, and generally is for optional fields)
     1412     * FormatDescription - A brief, natural language description of the field input constraints, e.g. "A valid e-mail address" or "only numbers and spaces".
     1413     * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first
     1414     * LengthHint - an integer suggesting how long an input firld should be presented
     1415
     1416To read a library's profile.
     1417
     1418 * '''Service:''' Libraries
     1419 * '''Operation:''' getLibraryProfile
     1420 * '''Input Parameters:'''
     1421  * libid - a string naming the library to be retrieved
     1422 * '''Return Values:'''
     1423   * LibraryId - the experiment whose profile is returned
     1424   * A list of profile elements each containing
     1425     * Name - a string, the element's name
     1426     * DataType - a string giving the element's
     1427       * string
     1428       * integer
     1429       * double
     1430       * binary/opaque
     1431     * Value - a string containing the element's value
     1432     * Access - a string describing the access values (Defined [http://www.isi.edu/~faber/tmp/DeterAPI/doc/constant-values.html here])
     1433     * Optional - a flag true if the field is optional (must be present but may be empty)
     1434     * Removable - a flag true if the field can be removed
     1435     * Description - a string explaining the field
     1436     * Format - a regular expression that can be used to validate the field entry (may be null, and generally is for optional fields)
     1437     * FormatDescription - A brief, natural language description of the field input constraints, e.g. "A valid e-mail address" or "only numbers and spaces".
     1438     * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first
     1439     * LengthHint - an integer suggesting how long an input field should be presented
     1440
     1441Finally a user can modify a library profile:
     1442 
     1443 * '''Service:''' Libraries
     1444 * '''Operation:''' changeLibraryProfile
     1445 * '''Input Parameters:'''
     1446   * Libid - the library's profile to modify
     1447   * A list of change requests. Each request contains
     1448     * Name - the name of the field to change
     1449     * Value - the new value of the field
     1450     * Delete - a flag, if true delete the field rather than modify it
     1451 * '''Return Values:'''
     1452   * A list of responses each containing
     1453    * Name - astring with the name of the field
     1454    * Success - a flag indicating if the request succeeded
     1455    * Reason - a string indicating the reason if Success is false
     1456
     1457
     1458=== Manipulating Profile Attributes ===
     1459
     1460Administrators may add attributes to library profiles or remove them.  That is to say, add a schema (including format constraints and descriptions), not set a value for a library.
     1461
     1462Creating an attribute:
     1463
     1464* '''Service:''' Libraries
     1465 * '''Operation:''' createLibraryAttribute
     1466 * '''Input Parameters:'''
     1467   * Name - the attribute name
     1468   * Type - the type (STRING, INT, FLOAT, OPAQUE)
     1469   * Optional - a boolean, true if this attribute is optional
     1470   * Access - a string: the user's ability to modify (READ_WRITE, READ_ONLY, WRITE_ONLY, NO_ACCESS)
     1471   * Description - natural language description of the field (optional)
     1472   * Format - a regular expression describing the format (optional)
     1473   * Formatdescription - a natural language explanation of the format (optional)
     1474   * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first
     1475   * LengthHint - an integer suggesting how long an input
     1476   * Def - default value of the attribute (will be set for all users)
     1477 * '''Return Values:'''
     1478  * a boolean, true if the attribute was created
     1479
     1480And removing an attribute:
     1481
     1482* '''Service:''' Libraries
     1483 * '''Operation:''' removeLibraryAttribute
     1484 * '''Input Parameters:'''
     1485   * Name - the attribute name
     1486 * '''Return Values:'''
     1487  * a boolean, true if the attribute was removed
     1488
     1489Finally administrators can modify profile attributes:
     1490
     1491* '''Service:''' Libraries
     1492 * '''Operation:''' modifyLibraryAttribute
     1493 * '''Input Parameters:'''
     1494   * Name - the attribute name
     1495   * Type - the type (STRING, INT, FLOAT, OPAQUE)
     1496   * Optional - a boolean, true if this attribute is optional
     1497   * Access - a string: the user's ability to modify (READ_WRITE, READ_ONLY, WRITE_ONLY, NO_ACCESS)
     1498   * Description - natural language description of the field (optional)
     1499   * Format - a regular expression describing the format (optional)
     1500   * Formatdescription - a natural language explanation of the format (optional)
     1501   * OrderingHint - an integer suggesting where to present the attribute. Lower numbers come first
     1502   * LengthHint - an integer suggesting how long an input
     1503 * '''Return Values:'''
     1504  * a boolean, true if the attribute was modified
    12771505
    12781506