220 likes | 350 Views
Update() Proposal. Jonathon Duerig , Robert Ricci. Goal. Allow Experimenters to Modify Existing Slivers. Overview. New API Methods Update() Cancel() New Allocation State geni_allocating. Current State Machine. Allocate(). Provision(). g eni _ unallocated. g eni _ allocated.
E N D
Update() Proposal Jonathon Duerig, Robert Ricci
Goal • Allow Experimenters to Modify Existing Slivers
Overview • New API Methods • Update() • Cancel() • New Allocation State • geni_allocating
Current State Machine Allocate() Provision() geni_ unallocated geni_ allocated geni_ provisioned Delete() Renew() Renew()
Update() • Parameters • Urns -- List of slivers to modify • Rspec -- Complete request specification for all slivers included in the urnslist • Changes user allocation, not provisioning • Existing sliver provisioning is unchanged
State Machine Allocate() Provision() Update() geni_ unallocated geni_ allocated geni_ provisioned geni_ updating Renew() Renew() Renew() Delete()
State Machine Allocate() Provision() Update() geni_ unallocated geni_ allocated geni_ provisioned geni_ updating
Cancel() • Cancel an allocation • Returns sliver to previous state • Provisioned slivers not perturbed
State Machine Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating
Provision() • Implements an allocation • Modifies sliver provisioning
State Machine Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision()
Update() for modify • Urns: sliver+35, sliver+36 <rspec> <node sliver_id=“sliver+35” …>…</node> <node …>…</node> </rspec>
State Machine Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision()
Update() for create • Urns: sliver+35, sliver+36 <rspec> <node sliver_id=“sliver+35” …>…</node> <node …>…</node> </rspec>
State Machine Update() Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision() Delete()
Update() for delete • Urns: sliver+35, sliver+36 <rspec> <node sliver_id=“sliver+35” …>…</node> <node …>…</node> </rspec>
State Machine Update() Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision() Provision()
Update() Allocations • Modifies allocations • geni_allocated • geni_updating • Slivers remain in same state • Attached to modified allocation
State Machine Update() Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision() Update() Update() Provision()
State Machine Update() Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision() Update() Update() Provision()
State Machine Update() Allocate() Provision() Update() geni_ unallocated Cancel() geni_ allocated geni_ provisioned Cancel() geni_ updating Provision() Renew() Update() Renew() Renew() Update() Delete() Provision()