summaryrefslogtreecommitdiffstats
path: root/requirements/resource_management/05-impl.rst
diff options
context:
space:
mode:
Diffstat (limited to 'requirements/resource_management/05-impl.rst')
-rwxr-xr-xrequirements/resource_management/05-impl.rst534
1 files changed, 0 insertions, 534 deletions
diff --git a/requirements/resource_management/05-impl.rst b/requirements/resource_management/05-impl.rst
deleted file mode 100755
index 7bbaa0c..0000000
--- a/requirements/resource_management/05-impl.rst
+++ /dev/null
@@ -1,534 +0,0 @@
-Detailed architecture and message flows
-=======================================
-
-Detailed northbound interface specification
--------------------------------------------
-
-.. Note::
- Once the output of the work from ETSI NFV IFA has been made publicly
- available, the UML diagrams and REST/JSON examples in this section will be
- extended
-
-Resource Capacity Management
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Subscribe Capacity Change Event
-_______________________________
-
-**SubscribeRequest (Consumer -> VIM)**
-
-.. uml::
-
- @startuml
- class SubscribeRequest {
- + zone [0..N]: Identifier
- + attributes [0..1]: String
- + resourceItems [0..1]: String
- + thresholds [0..N]: String
- + notificationId [0..1]: Identifier
- }
- @enduml
-
-Subscription from Consumer to VIM to be notified about capacity changes.
-Input Parameters:
-
-* Zone [0..N]: Identification of the zone(s) to notify regarding capacity
- change events
-* Attributes [0..1]: Attributes of resource items to be notified regarding
- capacity change events
-* ResourceItems [0..1]: Identifiers of existing resource items to be notified
- regarding capacity change events (such as images, flavors, virtual
- containers, networks, physical machines, etc.)
-* Thresholds [0..N]: Lower/Upper limits for triggering change event for
- used/reserved/total capacity change for specified resource items
-* NotificationId [0..1]: Identification of existing capacity change event
- notification issued by the VIM. When specified. The previously defined
- conditions for change event notifications wil be re-used and notification
- sent to the additional requestor.
-
-Application/json::
-
- {
- "zone": ["opnfv-JP8", "opnfv-JP9"],
- "resourceitems": "numvcinstances"
- }
-
-**SubscribeReply (VIM -> Consumer)**
-
-.. uml::
-
- @startuml
- class SubscribeReply {
- + subscriptionId [1]: Identifier
- + created [1]: DateTime
- + message [0..1]: String
- }
- @enduml
-
-Reply Parameters:
-
-* subscriptionId (Identifier): Identification of the capacity change event
- notification issued by the VIM.
-* created (DateTime): Timestamp when subscription has been created
-* m essage [0..1] (String): Output message that provides additional information
- about the subscribe request
-
-Application/json::
-
- {
- "created": "2015-03-23T00:00:01Z",
- "notificationId": "abcdef-ghijkl-123456789"
- }
-
-Query Resource Capacity
-_______________________
-
-**QueryRequest (NFVO -> VIM)**
-
-.. uml::
-
- @startuml
- class QueryCapacityRequest {
- + capacityQueryFilter [0..1]: CapacityQueryFilterClass
- }
-
- class CapacityQueryFilter {
- + zone [0..1]: Identifier
- + resourceItems [0..1]: String
- + flavorID [0..1]: Identifier
- + timePeriod [0..1]: DateTime
- }
-
- QueryCapacityRequest "1" *- "0..1" CapacityQueryFilter : ""
- @enduml
-
-.. -*
-
-Request to find out about used, reserved and total capacity.
-A CapacityQueryFilter can be used to narrow down the capacity details returned
-in the response message.
-
-Input Parameters:
-
-* capacityQueryFilter (CapacityQueryFilterClass): Optional information to
- narrow down the QueryCapacityRequest, for example to limit the query to given
- resource items, or a given resource zone. The capacityQueryFilter can also
- include a FlavorId or template ID. In this case, the QueryCapacity is a
- request to obtain information of the number of virtual resources that can be
- instantiated according to this flavor with the actual available capacity.
- A timePeriod can be specified to narrow down the query to a certain period of time.
-
-Application/json::
-
- {
- "capacityqueryfilter": {
- "resourceitems": "numvcinstances,virtualmemorysize",
- "zone": "opnfv-JP7"
- }
- }
-
-**QueryReply (VIM -> NFVO)**
-
-.. uml::
-
- @startuml
- class QueryCapacityReply {
- + capacityInformation [0..N]: CapacityInformationClass
- + zone [0..1]: Identifier
- + lastUpdate [0..1]: DateTime
- + message [0..1]: String
- }
-
- QueryCapacityReply "1" *- "0..N" CapacityInformationClass : ""
- @enduml
-
-.. -*
-
-Reply Parameters:
-
-* capacityInformation [0..N] (CapacityInformationClass): Capacity information
- matching the CapacityQueryFilter specified in the QueryCapacityRequest
-* Zone [0..1] (Identifier): Identification of the resource zone
-* lastUpdate [0..1] (DateTime): Timestamp of the capacity last update
-* message [0..1] (String): Output message that provides additional information
- about the query capacity request
-
-Application/json::
-
- {
- "capacityInformation": {
- "numvcinstances": {
- "used": 5,
- "reserved": 1,
- "total": 10
- },
- "virtualmemorysize": {
- "used": 4,
- "reserved": 6,
- "total": 16
- }
- },
- "zone":"opnfv-JP7",
- "lastUpdate":"2015-03-23T00:00:00Z"
- }
-
-Notify Capacity Change Event
-____________________________
-
-**CapacityChangeNotification (VIM -> Consumer)**
-
-.. uml::
-
- @startuml
- class CapacityChangeNotification {
- + capacityInformation [0..1]: CapacityInformationClass
- + zone [0..1]: Identifier
- + notificationTime [1]: DateTime
- + notificationId [1]: Identifier
- }
-
- CapacityChangeNotification "1" *- "0..1" CapacityInformationClass : ""
- @enduml
-
-.. -*
-
-Notification about capacity changes
-
-Notify Parameters:
-
-* capacityInformation [0..1] (CapacityInformationClass): Capacity information
- matching a given subscription request defined by the Consumer
-* zone [0..1] (Identifier): Identification of the resource zone
-* notificationTime [1] (DateTime): Timestamp when the capacity change is
- detected
-* notificationId [1]: Identification of the capacity change event notification
- issued by the VIM.
-
-Application/json::
-
- {
- "capacity": {
- "numvcinstances": {
- "used": 16,
- "reserved": 2,
- "total": 20
- }
- },
- "zone": "opnfv-JP8",
- "notificationTime":"2015-03-23T12:00:05Z",
- "notificationId":"abcdef-ghijkl-123456789"
- }
-
-Resource Reservation
-^^^^^^^^^^^^^^^^^^^^
-
-Create Resource Reservation
-___________________________
-
-**CreateResourceReservationRequest (NFVO -> VIM)**
-
-.. uml::
-
- @startuml
- class CreateResourceReservationRequest {
- + start [0..1]: DateTime
- + end [0..1]: DateTime
- + expiry [0..1]: DateTime
- + virtualizationContainerReservation [0..N]: VirtualizationContainerReservationClass
- + computePoolReservation [0..1]: ComputePoolReservationClass
- + storagePoolReservation [0..1]: StoragePoolReservationClass
- + networkReservation [0..1]: NetworkReservationClass
- + zone [0..1]: Identifier
- }
-
- class VirtualizationContainerReservationClass {
- + containerId [1]: Identifier
- + flavor [0..1]: FlavorClass
- }
-
- CreateResourceReservationRequest "1" *- "0..N" VirtualizationContainerReservationClass : ""
- VirtualizationContainerReservationClass "1" *-- "0..1" FlavorClass
- CreateResourceReservationRequest "1" *-- "0..1" ComputePoolReservationClass
- CreateResourceReservationRequest "1" *-- "0..1" StoragePoolReservationClass
- CreateResourceReservationRequest "1" *-- "0..1" NetworkReservationClass
- @enduml
-
-.. -*
-
-**CreateResourceReservationReply (VIM -> NFVO)**
-
-.. uml::
-
- @startuml
- class CreateResourceReservationReply {
- + reservationId [1]: Identifier
- + virtualizationContainerReserved [0..N]: VirtualizationContainerReservedClass
- + computePoolReserved [0..1]: ComputePoolReservedClass
- + storagePoolReserved [0..1]: StoragePoolReservedClass
- + networkReserved [0..1]: NetworkReservedClass
- + reservationStatus [1]: String
- + startTime [0..1]: Time
- + endTime [0..1]: Time
- + message [0..1]: String
- }
-
- class VirtualizationContainerReservedClass {
- + containerId [1]: Identifier
- + flavor [0..1]: FlavorClass
- }
-
- CreateResourceReservationReply "1" *- "0..N" VirtualizationContainerReservedClass : ""
- VirtualizationContainerReservedClass "1" *-- "0..1" FlavorClass
- CreateResourceReservationReply "1" *-- "0..1" ComputePoolReservedClass
- CreateResourceReservationReply "1" *-- "0..1" StoragePoolReservedClass
- CreateResourceReservationReply "1" *-- "0..1" NetworkReservedClass
- @enduml
-
-.. -*
-
-Subscribe / Notify Reservation Event
-____________________________________
-
-**SubscribeRequest (Consumer -> VIM)**
-
-.. uml::
-
- @startuml
- class SubscribeRequest {
- + reservationId [1]: Identifier
- + eventType [0..1]: String
- }
- @enduml
-
-**SubscribeReply (VIM -> Consumer)**
-
-.. uml::
-
- @startuml
- class SubscribeReply {
- + notificationId [1]: Identifier
- + created [1]: DateTime
- + message [0..1]: String
- }
- @enduml
-
-**NotifyReservationEvent (VIM -> Consumer)**
-
-.. uml::
-
- @startuml
- class ReservationEventNotification {
- + notificationId [1]: Identifier
- + reservationId [1]: Identifier
- + notificationTime [1]: DateTime
- + vimId [1]: Identifier
- + eventType [1]: String
- + eventDetails [1]: String
- + message [0..1]: String
- }
- @enduml
-
-Query Resource Reservation
-__________________________
-
-**QueryResourceReservationRequest (Consumer -> VIM)**
-
-.. uml::
-
- @startuml
- class QueryResourceReservationRequest {
- + reservationQueryFilter [0..1]: ReservationQueryFilterClass
- }
-
- QueryResourceReservationRequest "1" *- "0..1" ReservationQueryFilterClass : ""
- @enduml
-
-.. -*
-
-**QueryResourceReservationReply (VIM -> Consumer)**
-
-.. uml::
-
- @startuml
- class CreateResourceReservationReply {
- + reservationId [1]: Identifier
- + virtualizationContainerReserved [0..N]: VirtualizationContainerReservedClass
- + computePoolReserved [0..1]: ComputePoolReservedClass
- + storagePoolReserved [0..1]: StoragePoolReservedClass
- + networkReserved [0..1]: NetworkReservedClass
- + reservationStatus [1]: String
- + message [0..1]: String
- }
-
- class VirtualizationContainerReservedClass {
- + containerId [1]: Identifier
- + flavor [0..1]: FlavorClass
- }
-
- CreateResourceReservationReply "1" *- "0..N" VirtualizationContainerReservedClass : ""
- VirtualizationContainerReservedClass "1" *-- "0..1" FlavorClass
- CreateResourceReservationReply "1" *-- "0..1" ComputePoolReservedClass
- CreateResourceReservationReply "1" *-- "0..1" StoragePoolReservedClass
- CreateResourceReservationReply "1" *-- "0..1" NetworkReservedClass
- @enduml
-
-.. -*
-
-Update Resource Reservation
-___________________________
-
-**UpdateResourceReservationRequest (NFVO ->VIM)**
-
-.. uml::
-
- @startuml
- class UpdateResourceReservationRequest {
- + reservationId [1]: Identifier
- + start [0..1]: DateTime
- + end [0..1]: DateTime
- + expiry [0..1]: DateTime
- + virtualizationContainerReservation [0..N]: VirtualizationContainerReservationClass
- + computePoolReservation [0..1]: ComputePoolReservationClass
- + storagePoolReservation [0..1]: StoragePoolReservationClass
- + networkReservation [0..1]: NetworkReservationClass
- + zone [0..1]: Identifier
- }
-
- class VirtualizationContainerReservationClass {
- + containerId [1]: Identifier
- + flavor [0..1]: FlavorClass
- }
-
- UpdateResourceReservationRequest "1" *- "0..N" VirtualizationContainerReservationClass : ""
- VirtualizationContainerReservationClass "1" *-- "0..1" FlavorClass
- UpdateResourceReservationRequest "1" *-- "0..1" ComputePoolReservationClass
- UpdateResourceReservationRequest "1" *-- "0..1" StoragePoolReservationClass
- UpdateResourceReservationRequest "1" *-- "0..1" NetworkReservationClass
- @enduml
-
-.. -*
-
-**UpdateResourceReservationReply (VIM -> NFVO)**
-
-.. uml::
-
- @startuml
- class UpdateResourceReservationReply {
- + reservationId [1]: Identifier
- + virtualizationContainerReserved [0..N]: VirtualizationContainerReservedClass
- + computePoolReserved [0..1]: ComputePoolReservedClass
- + storagePoolReserved [0..1]: StoragePoolReservedClass
- + networkReserved [0..1]: NetworkReservedClass
- + reservationStatus [1]: String
- + message [0..1]: String
- }
-
- class VirtualizationContainerReservedClass {
- + containerId [1]: Identifier
- + flavor [0..1]: FlavorClass
- }
-
- UpdateResourceReservationReply "1" *- "0..N" VirtualizationContainerReservedClass : ""
- VirtualizationContainerReservedClass "1" *-- "0..1" FlavorClass
- UpdateResourceReservationReply "1" *-- "0..1" ComputePoolReservedClass
- UpdateResourceReservationReply "1" *-- "0..1" StoragePoolReservedClass
- UpdateResourceReservationReply "1" *-- "0..1" NetworkReservedClass
- @enduml
-
-.. -*
-
-Release Resource Reservation
-____________________________
-
-**ReleaseResourceReservationRequest (NFVO -> VIM)**
-
-.. uml::
-
- @startuml
- class ReleaseResourceReservationRequest {
- + reservationId [1]: Identifier
- }
- @enduml
-
-**ReleaseResourceReservationReply (VIM -> NFVO)**
-
-.. uml::
-
- @startuml
- class ReleaseResourceReservationReply {
- + reservationId [1]: Identifier
- + message [0..1]: String
- }
- @enduml
-
-
-Detailed Message Flows
-----------------------
-
-Resource Capacity Management
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-.. figure:: images/figure5.png
- :width: 90%
-
- Capacity Management Scenario
-
-Figure 5 shows a detailed message flow between the consumers and the
-functionalblocks inside the VIM and has the following steps:
-
-Step 1: The consumer subscribes to capacity change notifications
-
-Step 2: The Capacity Manager monitors the capacity information for the various
-types of resources by querying the various Controllers (e.g. Nova, Neutron,
-Cinder), either periodically or on demand and updates capacity information in
-the Capacity Map
-
-Step 3: Capacity changes are notified to the consumer
-
-Step 4: The consumer queries the Capacity Manager to retrieve capacity detailed
-information
-
-Resource Reservation
-^^^^^^^^^^^^^^^^^^^^
-
-.. figure:: images/figure6.png
- :width: 90%
-
- Resource Reservation for Future Use Scenario
-
-Figure 6 shows a detailed message flow between the consumers and the functional
-blocks inside the VIM and has the following steps:
-
-Step 1: The consumer creates a resource reservation request for future use by
-setting a start and end time for the allocation
-
-Step 2: The consumer gets an immediate reply with a reservation status message
-"reservationStatus" and an identifier to be used with this reservation instance
-"reservationID"
-
-Step 3: The consumer subscribes to reservation notification events
-
-Step 4: The Resource Reservation Manager checks the feasibility of the
-reservation request by consulting the Capacity Manager
-
-Step 5: The Resource Reservation Manager reserves the resources and stores the
-list of reservations IDs generated by the Controllers (e.g. Nova, Neutron,
-Cinder) in the Reservation Map
-
-Step 6: Once the reservation process is completed, the VIM sends a notification
-message to the consumer with information on the reserved resources
-
-Step 7: When start time arrives, the consumer creates a resource allocation
-request.
-
-Step 8: The consumer gets an immediate reply with an allocation status message
-"allocationStatus".
-
-Step 9: The consumer subscribes to allocation notification events
-
-Step 10: The Resource Allocation Manager allocates the reserved resources. If
-not all reserved resources are allocated before expiry, the reserved resources
-are released and a notification is sent to the consumer
-
-Step 11: Once the allocation process is completed, the VIM sends a notification
-message to the consumer with information on the allocated resources