Skip to content. | Skip to navigation

Personal tools


You are here: Home / Wiki / Updatingslices


Updating Slices

Updating Slices

One flaw in the GENI architecture as currently proposed is that there are two different paths to acquiring resources, on Component Managers: RedeemTicket() and UpdateSliver(). The former is used to get a "new" sliver, and the latter is used to add (or remove) resources from an existing sliver. The problem is that the former takes a ticket as an argument, and the latter does not: it simply takes an RSpec.

This presents several problems. First, it prevents resource tracking by logging, etc. of tickets. Second, when important information needs to be passed back to the requester in the ticket (such as the sliver_uuid in our tickets), it removes that communication channel. And finally, it's asymmetric, which could lead to confusion.

What we propose that one Component Manager call be added, and that another be modified, for symmetry:

  • GetTicket() and RedeemTicket() should remain as-is
  • A new call, called UpdateTicket() should be added. This call should take an old ticket and a new RSpec. The return value from this call (assuming the request is granted) should be a new ticket. The reason it's necessary to include the old ticket as a parameter is that for finite resources, it's not possible to issue a new ticket for resources the slice may already have allocated without seeing evidence that the slice does indeed have a ticket for those resources already.
  • The UpdateSliver() call should be modified to take a ticket, rather than a simple RSpec. This ticket will typically come from a call to UpdateTicket()