Implement network reservation feature

Registered by Nikolay Starodubtsev

Summary
========

Support network reservation by adding new network resource-plugins.

Problem description
================

It is only "compute host" that can be reserved by Blazar for now. A variety of resources
should be supported by Blazar to improve the flexibility of resource reservation. A typical
one is "network."

Use Cases
---------------
- I want guaranteed access to 4 instances with 1 vCPU and 1GB of RAM and 10GB of disk
  and a guaranteed minimum bandwidth of 1Gbps between the instances.
  (Capacity management user story [2])

Proposed change
==============

Blazar basically respects extensibility by separating resource-plugins from other
components (e.g. manager, DB). A new "network-plugin" will be added to resource-plugins
to support network reservation.

What we have to do for the first is to define and classify network resources. Then decide
which resources to be handled by Blazar, and plan how to implement them.

Alternatives
-----------------
TBD

Data model impact
--------------------------
TBD

REST API impact
------------------------
TBD

Security impact
----------------------
TBD

Notifications impact
----------------------------
TBD

Other end user impact
--------------------------------
TBD

Performance impact
-----------------------------
None.

Other deployer impact
--------------------------------
TBD

Developer impact
---------------------------
TBD

Dependencies
===========

TBD: Related Neutron and Nova features and APIs should be investigated.

Testing
======
TBD

Documentation impact
==================
TBD

References
=========

[1] https://github.com/openstack/nova-specs/blob/master/specs/pike-template.rst
[2] https://github.com/openstack/openstack-user-stories/blob/master/user-stories/proposed/capacity-management.rst

Note: this form is based on the nova-specs template[1].

Blueprint information

Status:
Started
Approver:
None
Priority:
Medium
Drafter:
Nikolay Starodubtsev
Direction:
Needs approval
Assignee:
Pierre Riteau
Definition:
Drafting
Series goal:
Accepted for train
Implementation:
Good progress
Milestone target:
None
Started by
Pierre Riteau

Related branches

Sprints

Whiteboard

History: http://lists.openstack.org/pipermail/openstack-dev/2013-November/018448.html

The goal of this BP for Stein release is complete its design phase.

https://etherpad.openstack.org/p/network-resource-reservation

Addressed by: https://review.opendev.org/668749
    Implement network segment reservation

Gerrit topic: https://review.opendev.org/#/q/topic:bp/basic-network-plugin

Gerrit topic: https://review.opendev.org/#/q/topic:bp/simple-network-reservation

Addressed by: https://review.opendev.org/762015
    Implement network segment reservation

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.