[[PageOutline]] = GENI Aggregate Manager API Revisions = == Schedule == Tuesday, 10:00 am - noon == Session Leaders == Aaron Helsinger and Tom Mitchell, GENI Project Office == Agenda / Details == {{{ #!comment Dial In: 866-453-5550; Participant pin: 6513886# }}} The GENI Aggregate Manager API was [wiki:GEC12GeniAmAPI revised at GEC12], when we adopted [wiki:GAPI_AM_API_V2 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 [wiki:GAPI_AM_API_DRAFT GENI AM API draft revisions wiki page]. Nominal Agenda: - Getting to AM API v3: Aaron Helsinger ([attachment:AMAPI-GEC13-Changes-AHelsinger-to-post.pdf slides]) - "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 ([attachment:JDuerig-AMAPI-TransactionsAndUpdate.pdf slides]) - Alternative proposals: Nick Bastin - Discussion - Next Steps '''Note''': The [wiki:GEC13Agenda/CodingSprint Coding Sprint session] on Thursday afternoon will be used to further specify some of the changes discussed here. == Background Reading == * [wiki:GAPI_AM_API GENI AM API wiki page] * [wiki:GAPI_AM_API_DRAFT Draft AM API Revisions] * [wiki:GAPI_AM_API_ISSUES Issues identified in the current AM API] == 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. 2. 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 {{{}}} 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. 3. 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 ?).