GEC13Agenda/AMAPIRevisions

GENI Aggregate Manager API Revisions

Schedule

Tuesday, 10:00 am - noon

Session Leaders

Aaron Helsinger and Tom Mitchell, GENI Project Office

Agenda / Details

The GENI Aggregate Manager API was revised at GEC12, when we adopted AM API version 2. This session will seek agreement on several additional proposed changes to the API. These changes include multiple small changes to expose additional aggregate functionality and ease the job of experimenter tools. Then we will discuss larger future changes, such as adding support for UpdateSliver to dynamically add or remove resources from your slice, and tickets to support negotiated reservations. All the proposed changes are documented on the GENI AM API draft revisions wiki page.

Nominal Agenda:

  • Getting to AM API v3: Aaron Helsinger (slides Download)
  • "Minimal" AM API v3 changes: Aaron Helsinger
  • Proposals "on the bubble": Aaron Helsinger
  • Discussion on AM API v3
  • UpdateSlivers: Aaron Helsinger
  • Tickets: Aaron Helsinger
  • ProtoGENI perspective: Jon Duerig (slides Download)
  • Alternative proposals: Nick Bastin
  • Discussion
  • Next Steps

Note: The Coding Sprint session on Thursday afternoon will be used to further specify some of the changes discussed here.

Background Reading

Meeting Summary

At the AM API session, we had a lively debate about the so-called "minimal" proposals for AM API v3, adopting several changes for inclusion in AM API version 3.

The discussion surfaced several key topics for ongoing discussion, in particular providing ways to add and remove resources from a slice at an aggregate (part of UpdateSliver?), and defining more general sliver operational and allocation states, and general methods for querying and traversing states. These concerns caused us to hold off on adopting many of the proposals on the floor.

The group did agree on several changes to be incorporated in AM API version 3. Details of each of the proposals below is on the GENI wiki ( http://groups.geni.net/geni/wiki/GAPI_AM_API_DRAFT) where more specific descriptions will be posted shortly.

  1. Change Set G: We agreed to generalize the meaning of the credentials argument, to allow aggregates to optionally also accept other kinds of credentials. The group still needs to work out how aggregates advertise acceptable credentials, perhaps using a new option returned from GetVersion.
  1. Parts of Change Set I:
  • I1: We adopted the change to return geni_expires in SliverStatus.
  • I3: We adopted the change to make CreateSliver return a struct with the rspec, but also now geni_expires.
  • I2: We agreed that resource login information should be returned in a standard format, but agreed to instead use an RSpec extension, adding to the existing <services> tag in manifest RSpecs. Jon Duerig has since drafted this extension and added it to the RSpec git repository. The group will still needs to comment and agree on this extension.
  1. Parts of Change Set K:
  • Certificates must be marked properly as Version 3, and include a true unique serialNum. Only authorities should be marked CA:TRUE.
  • Slice names are <= 19 characters, only alphanumeric plus hyphen.
  • Usernames (in the user URN in the user certificate) are:
    • case-insensitive internally, though they may be case sensitive for display
    • limited to 8 characters
    • Alphanumeric plus underscore - no hyphen

As a group, we agreed to work to work to resolve the outstanding issues from this 'minimal' set through ongoing email discussions in the coming weeks. For these changes, we will currently leave AM API version 3 open, to allow adding any of these other changes that the group agrees on. We also will discuss ways to modify the slice in place, and to do tickets (or transactions or ?).

Attachments