Changes between Version 8 and Version 9 of NewAPI


Ignore:
Timestamp:
Jun 26, 2013 4:41:12 PM (11 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • NewAPI

    v8 v9  
    186186 * When the experiment (or a phase of the experiment is done) the testbed can issue a Stop to the container, which will move to Configured.
    187187
    188 
    189 === Putting It All Together ===
     188From that point the testbed can issue Clean, Configure, and Start commands to adjust the container state and operation.
     189
     190=== Configuration and Specialization ===
     191
     192The most common form of container specialization is the configuration format that the container expects. We have defined formats for containers that look like computers that define accounts, filesystems, software installations, etc. Other configuration formats will evolve and move into the mainstream.
     193
     194In addition we define low-level commands in an experiment description that bind a configuration message content to a node in an experiment.  This allows new container configurations to be communicates even when the testbed does not understand them.
     195
     196In addition to custom configuration systems, containers can export custom operations.  For example, some virtual machines support snapshotting their state.  That can be useful to experimenters.  Again containers can advertise operations that the testbed is unaware of and the testbed API presents a way for users to pass a request through to a container directly.
     197
     198
     199== Putting It All Together ==
    190200
    191201To understand how the pieces above fit together, here is an example of a researcher using DETER.
     
    204214
    205215
    206 
    207 
    208 The API provides an authenticated user (see below) with several interfaces to query and modify their profile information.
    209 
    210 In the API each element of profile data is represented as a structure with the following data in it:
    211 
    212  * name of the element
    213  * type of the element
    214   * string
    215   * integer
    216   * double
    217   * binary/opaque
    218   * lists of any of the above
    219  * value(s) of the element
    220  * a flag set if the element is optional
    221  * a modification type: elements may be read/write, read-only (e.g., username) or write-only (e.g., password)
    222  * a brief description of the field, intended to be presented by a web interface or other third party program
    223 
    224 The interfaces to manipulate a profile are
    225 
    226  * '''GetProfileDescription'''
    227    * No input required
    228    * Returns a set of empty elements that this testbed understands and requires, represented as above
    229  * '''GetUserProfile'''
    230    * No input required execpt an authenticated user
    231    * Returns a populated set of elements containing the current values of the user's profile
    232  * '''SetUserProfile'''
    233    * A list of populated elements that the (authenticated) user wishes to change in the current profile
    234    * A list of the elements successfully updated, and a list of those that failed with a reason for each
    235 
    236 
    237 === Authenticating as a User ===
    238 
    239 A user represnts themself to the testbed by presenting proof that they hold a public key, for example through an SSL connection.  The testbed determines what operations a user can carry out based on an ABAC-encoded policy that grants rights to users and binds keys to users.  A user is issued a public key periodically by DETER, but also can request a short lived temporary key at any time by authenticating against a shared password.  A temporary key is useful to allow a web application or other hosted tool to act on a user's behalf.
    240 
     216== More Information ==
     217
     218From here, readers may be interested in the
     219
     220 * [wiki:NewAPISpec Detailed Specification of the API]
     221 * [wiki:NewImpl Implementation plan/roadmap]