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

22
Update() Proposal Jonathon Duerig, Robert Ricci

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()