Update() Proposal Jonathon Duerig, Robert Ricci. Goal Allow Experimenters to Modify Existing...

Post on 25-Dec-2015

218 views 0 download

Tags:

Transcript of Update() Proposal Jonathon Duerig, Robert Ricci. Goal Allow Experimenters to Modify Existing...

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

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Delete()

Renew() Renew()

Update()

• Parameters– Urns -- List of slivers to modify– Rspec -- Complete request specification for all

slivers included in the urns list• Changes user allocation, not provisioning– Existing sliver provisioning is unchanged

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Delete() Renew() Renew()

geni_updating

Renew()

Update()

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

geni_updating

Update()

Cancel()

• Cancel an allocation• Returns sliver to previous state• Provisioned slivers not perturbed

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

geni_updating

Update()

Cancel() Cancel()

Provision()

• Implements an allocation• Modifies sliver provisioning

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

geni_updating

Update()

Cancel() Cancel()

Provision()

UPDATE() RSPECS

Update() for modify

• Urns: sliver+35, sliver+36<rspec>

<node sliver_id=“sliver+35” …>…</node><node …>…</node>

</rspec>

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

geni_updating

Update()

Cancel() Cancel()

Provision()

Update() for create

• Urns: sliver+35, sliver+36<rspec>

<node sliver_id=“sliver+35” …>…</node><node …>…</node>

</rspec>

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Delete()

geni_updating

Update()

Cancel() Cancel()

Provision()

Update()

Update() for delete

• Urns: sliver+35, sliver+36<rspec>

<node sliver_id=“sliver+35” …>…</node><node …>…</node>

</rspec>

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

geni_updating

Update()

Cancel() Cancel()

Provision()

Provision()

Update()

Update() Allocations

• Modifies allocations– geni_allocated– geni_updating

• Slivers remain in same state• Attached to modified allocation

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Update()

geni_updating

Update()

Update()

Cancel() Cancel()

Provision()

Provision()

Update()

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Update()

geni_updating

Update()

Update()

Cancel() Cancel()

Provision()

Provision()

Update()

State Machine

geni_unallocated

geni_allocated

geni_provisioned

Allocate() Provision()

Delete() Renew()Update()

Renew()

geni_updating

Renew()Update()

Update()

Cancel() Cancel()

Provision()

Provision()

Update()