Version 4 (modified by Aaron Helsinger, 13 years ago) (diff)


Coding Sprint for Developers and Experimenters

Fri, 1300-1600

Organizers: Sarah Edwards, Aaron Helsinger, and Niky Riga, GPO

Dial In: 866-453-5550 ; Participant pin: 6513886#

The coding sprint session provides an opportunity for members of the GENI community to come work side by side with each other. GENI software developers will implement code on a topic selected in advance. Meanwhile, GENI experimenters can setup their own experiments with support from the GPO and other members of the GENI community.

This software development session provides an opportunity for GENI engineers to collaborate in real time on a particular software or documentation issue. The topic will be selected well in advance of the conference, based on need and key party availability. At GEC12, the topic will be AM API changes.

There are a slate of AM API changes which will be discussed and hopefully agreed to earlier in the GEC, which are described here. At the coding sprint, software developers who have an existing AM which supports the AM API are encouraged to meet in the same room and discuss details on how to implement the new AM API changes together. Specifically, we will work out issues such as consistent handling of edge cases, error handling, advertising new options supported by aggregates, and other details of the proposed API changes.

Experimenters with an idea they want to work on are encouraged to come do so in the same room as other GENI experimenters. The GPO will answer questions and provide assistance on configuring the experiment.

It is anticipated that most participants will attend in person, but a telephone and jabber chatroom will be set up for those unable to attend in person.

Snacks will be provided.

While it is not required, it would be appreciated if developers or experimenters who plan to attend send e-mail to Sarah Edwards ( in advance so we know how many people are coming.

Coding Sprint for Developers Summary

This session discussed changes to the AM API, as listed in the attached slides. The outcome of this meeting was to approve and finalize changes in AM API version 2. Details of AM API version 2 will be published to the GENI wiki and on the GENI developer mailing list. For details on the AM API changes, see the AM API session page

  • AM API version 2 will be change set A and B as documented on the GENI wiki as it has now been edited.
  • ProtoGENI, SFA, and FOAM will be updated to support API version 2 within weeks.
  • We will discuss other API changes via email and periodic phone calls, no later than November 16th protoGENI cluster call.
  • We adopted Nick Bastin's proposal to make the return code (part of change set B part 2) be an XMLRPC struct:
    code {
      geni_code: XMLRPC integer, registered in an XML document off the GENI AM API page
      am_type: [optional] XMLRPC string, case insensitive, types in a registry (XML document) linked off the GENI AM API page
      am_code: [optional] XMLRPC integer

The am_type and code are extra fields an aggregate may supply to further specify the nature of the error (or success).

  • geni_code values will initially be a set of 18 values, as proposed by ProtoGENI
  • Aggregate specific error codes must be documented - we did not specify how.
  • Aggregates are required to document in human-readable form any new options or return values that they support. The API will not specify how they are documented.
  • Aggregates may support multiple versions of the API by using separate URLs.
  • GetVersion adds a new member (part of the new value return) for indicating which versions of the API are supported at what URLs:
    geni_api_versions: {
      1: <URL>,
      2: <URL>,
  • Modifying change set A:
    • Remove the default_ad_rspec return from GetVersion
    • Make the rspec_version argument to ListResources required
    • Rename ad_rspec_versions as geni_ad_rspec_versions
    • Rename request_rspec_versions as geni_request_rspec_versions

Attachments (1)

Download all attachments as: .zip