From 5173377d09f2ee36f340e98c894422a2095cfb20 Mon Sep 17 00:00:00 2001 From: bertys Date: Sun, 20 Sep 2015 23:46:35 +0200 Subject: [PATCH 1/1] Evaluate ETSI NFV IFA vs. Promise specifications JIRA: PROMISE-11 Added definition of resource zone (NFV IFA 010 V0.5.2) Section 5 aligned to NFV IFA 005 V0.7.0 Added OPNFV Logo Change-Id: I02e564d9db3846e3f2901caade65082cb4ca83ff Signed-off-by: bertys --- Makefile | 7 +- etc/conf.py | 8 +- requirements.txt | 2 +- requirements/05-impl.rst | 1253 ++++++++++++++++++++++----------- requirements/08-revision.rst | 6 +- requirements/glossary.rst | 5 + requirements/images/computeflavor.png | Bin 0 -> 105698 bytes requirements/images/opnfv-logo.png | Bin 0 -> 2829 bytes requirements/index.rst | 6 + 9 files changed, 854 insertions(+), 433 deletions(-) create mode 100755 requirements/images/computeflavor.png create mode 100644 requirements/images/opnfv-logo.png diff --git a/Makefile b/Makefile index d1a0e8a..73fa622 100644 --- a/Makefile +++ b/Makefile @@ -2,11 +2,8 @@ BUILDDIR := build .PHONY: default clean -default: plantuml.jar +default: tox -plantuml.jar: - wget 'http://downloads.sourceforge.net/project/plantuml/plantuml.jar' - clean: - rm -rf .tox build plantuml.jar + rm -rf .tox build diff --git a/etc/conf.py b/etc/conf.py index 8c70b15..88fcb28 100755 --- a/etc/conf.py +++ b/etc/conf.py @@ -4,9 +4,7 @@ import os needs_sphinx = '1.3' -# plantuml -extensions = ['sphinxcontrib.plantuml'] -plantuml = ['java', '-jar', 'plantuml.jar'] +extensions = ['sphinxcontrib.httpdomain'] numfig = True @@ -27,6 +25,6 @@ latex_elements = { project = u'Promise: Resource Management' copyright = u'%s, OPNFV' % datetime.date.today().year -version = u'1.0.1' -release = u'1.0.1' +version = u'1.0.2' +release = u'1.0.2' diff --git a/requirements.txt b/requirements.txt index 6024eb7..fea41a9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ sphinx sphinx_numfig -sphinxcontrib-plantuml +sphinxcontrib-httpdomain diff --git a/requirements/05-impl.rst b/requirements/05-impl.rst index 9903a54..951c6d6 100644 --- a/requirements/05-impl.rst +++ b/requirements/05-impl.rst @@ -5,462 +5,873 @@ 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 + This is Work in Progress. -Resource Capacity Management +ETSI NFV IFA Information Models +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Compute Flavor +^^^^^^^^^^^^^^ + +A compute flavor includes information about number of virtual CPUs, size of virtual memory, +size of virtual storage, and virtual network interfaces [NFVIFA005]_ + +.. figure:: images/computeflavor.png + :name: computeflavor + :width: 90% + +Virtualised Compute Resources +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Compute Capacity Management +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Subscribe Compute Capacity Change Event +_______________________________________ + +Subscription from Consumer to VIM to be notified about compute capacity changes + +.. http:post:: /capacity/compute/subscribe + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /capacity/compute/subscribe HTTP/1.1 + Accept: application/json + + { + "zoneId": "12345", + "resourceDescriptor": [ + { + "computeResourceTypeId": "vcInstances" + } + ], + "threshold": [ + { + "capacity_info": "available", + "condition": "lt", + "value": 5 + } + ] + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "created": "2015-09-21T00:00:00Z", + "capacityChangeSubscriptionId": "abcdef-ghijkl-123456789" + } + + :statuscode 400: resourceDescriptor is missing + +Query Compute Capacity +______________________ + +Request to find out about available, reserved, total and allocated compute capacity. + +.. http:get:: /capacity/compute/query + :noindex: + + **Example request**: + + .. sourcecode:: http + + GET /capacity/compute/query HTTP/1.1 + Accept: application/json + + { + "zoneId": "12345", + "resourceDescriptor": { + "computeResourceTypeId": "vcInstances" + }, + "timePeriod": { + "startTime": "2015-09-21T00:00:00Z", + "stopTime": "2015-09-21T00:05:30Z" + } + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "zoneId": "12345", + "lastUpdate": "2015-09-21T00:03:20Z", + "capacityInformation": { + "available": 4, + "reserved": 17, + "total": 50, + "allocated": 29 + } + } + + :query limit: Default is 10. + :statuscode 404: resource zone unknown + +Notify Compute Capacity Change Event +____________________________________ + +Notification about compute capacity changes + +.. http:post:: /capacity/compute/notification + :noindex: + + **Example notification**: + + .. sourcecode:: http + + Content-Type: application/json + + { + "zoneId": "12345", + "notificationId": "zyxwvu-tsrqpo-987654321", + "capacityChangeTime": "2015-09-21T00:03:20Z", + "resourceDescriptor": { + "computeResourceTypeId": "vcInstances" + }, + "capacityInformation": { + "available": 4, + "reserved": 17, + "total": 50, + "allocated": 29 + } + } + +Compute Resource Reservation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -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 +Create Compute Resource Reservation +___________________________________ + +Request the reservation of compute resource capacity + +.. http:post:: /reservation/compute/create + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/compute/create HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-21T01:00:00Z", + "computePoolReservation": { + "numCpuCores": 20, + "numVcInstances": 5, + "virtualMemSize": 10 + } + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-21T01:00:00Z", + "reservationStatus": "initialized", + "reservationId": "xxxx-yyyy-zzzz", + "computePoolReserved": { + "numCpuCores": 20, + "numVcInstances": 5, + "virtualMemSize": 10, + "zoneId": "23456" + } + } + } + +and/or virtualized containers + +.. http:post:: reservation/compute/create + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/compute/create HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-10-05T15:00:00Z", + "virtualizationContainerReservation": [ + { + "containerId": "myContainer", + "containerFlavor": { + "flavorId": "myFlavor", + "virtualCpu": { + "numVirtualCpu": 2, + "cpuArchitecture": "x86" + }, + "virtualMemory": { + "numaEnabled": "False", + "virtualMemSize": 16 + }, + "virtualStorage": { + "typeOfStorage": "volume", + "sizeOfStorage": 16 + } + } + } + ] + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-10-05T15:00:00Z", + "reservationId": "aaaa-bbbb-cccc", + "reservationStatus": "initialized", + "virtualizationContainerReserved": [ + { + "containerId": "myContainer", + "containerFlavor": { + "flavorId": "myFlavor", + "virtualCpu": { + "numVirtualCpu": 2, + "cpuArchitecture": "x86" + }, + "virtualMemory": { + "numaEnabled": "False", + "virtualMemSize": 16 + }, + "virtualStorage": { + "typeOfStorage": "volume", + "sizeOfStorage": 16 + } + } + } + ] + } + } + + + +Query Compute Resource Reservation +__________________________________ + +Request to find out about reserved compute resources that the consumer has +access to. + +.. http:get:: /reservation/compute/query + :noindex: + + **Example request**: + + .. sourcecode:: http + + GET /reservation/compute/query HTTP/1.1 + Accept: application/json + + { + "queryReservationFilter": [ + { + "reservationId": "xxxx-yyyy-zzzz" + } + ] -Subscription from Consumer to VIM to be notified about capacity changes. -Input Parameters: + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "reservationData": + { + "startTime": "2015-09-21T01:00:00Z", + "reservationStatus": "active", + "reservationId": "xxxx-yyyy-zzzz", + "computePoolReserved": + { + "numCpuCores": 20, + "numVcInstances": 5, + "virtualMemSize": 10, + "zoneId": "23456" + } + } + } + + :statuscode 404: reservation id unknown + +Update Compute Resource Reservation +___________________________________ +Request to update compute resource reservation + +.. http:post:: /reservation/compute/update + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/compute/update HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-14T16:00:00Z", + "reservationId": "xxxx-yyyy-zzzz" + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-14TT16:00:00Z", + "reservationStatus": "active", + "reservationId": "xxxx-yyyy-zzzz", + "computePoolReserved": { + "numCpuCores": 20, + "numVcInstances": 5, + "virtualMemSize": 10, + "zoneId": "23456" + } + } + } + +Terminate Compute Resource Reservation +______________________________________ +Request to terminate a compute resource reservation + +.. http:delete:: /reservation/compute/(reservation_id) + :noindex: + +Virtualised Network Resources +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Network Capacity Management +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Subscribe Network Capacity Change Event +_______________________________________ + +Susbcription from Consumer to VIM to be notified about network capacity changes + +.. http:post:: /capacity/network/subscribe + :noindex: -* 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 will be re-used and notification - sent to the additional requestor. + **Example request**: -Application/json:: + .. sourcecode:: http - { - "zone": ["opnfv-JP8", "opnfv-JP9"], - "resourceitems": "numvcinstances" - } + POST /capacity/network/subscribe HTTP/1.1 + Accept: application/json -**SubscribeReply (VIM -> Consumer)** + { + "resourceDescriptor": [ + { + "networkResourceTypeId": "publicIps" + } + ], + "threshold": [ + { + "capacity_info": "available", + "condition": "lt", + "value": 5 + } + ] +  } + + **Example response**: -.. uml:: + .. sourcecode:: http - @startuml - class SubscribeReply { - + subscriptionId [1]: Identifier - + created [1]: DateTime - + message [0..1]: String - } - @enduml - -Reply Parameters: - -* subscriptionId (Identifier): Identification of the created subscription to - receive notifications about capacity change events -* created (DateTime): Timestamp when subscription has been created -* message [0..1] (String): Output message that provides additional information - about the subscribe request - -Application/json:: - - { - "created": "2015-03-23T00:00:01Z", - "subscriptionId": "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 - -.. -* + HTTP/1.1 201 CREATED + Content-Type: application/json -Reply Parameters: + { + "created": "2015-09-28T00:00:00Z", + "capacityChangeSubscriptionId": "bcdefg-hijklm-234567890" + } -* 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 +Query Network Capacity +______________________ -Application/json:: - - { - "capacityInformation": { - "numvcinstances": { - "used": 5, - "reserved": 1, - "total": 10 - }, - "virtualmemorysize": { - "used": 4, - "reserved": 6, - "total": 16 +Request to find out about available, reserved, total and allocated network capacity. + +.. http:get:: /capacity/network/query + :noindex: + + **Example request**: + + .. sourcecode:: http + + GET /capacity/network/query HTTP/1.1 + Accept: application/json + + { + "resourceDescriptor": { + "networkResourceTypeId": "publicIps" + }, + "timePeriod": { + "startTime": "2015-09-28T00:00:00Z", + "stopTime": "2015-09-28T00:05:30Z" + } + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "lastUpdate": "2015-09-28T00:02:10Z", + "capacityInformation": { + "available": 4, + "reserved": 10, + "total": 64, + "allocated": 50 + } } - }, - "zone":"opnfv-JP7", - "lastUpdate":"2015-03-23T00:00:00Z" - } -Notify Capacity Change Event -____________________________ +Notify Network Capacity Change Event +____________________________________ + +Notification about network capacity changes -**CapacityChangeNotification (VIM -> Consumer)** +.. http:post:: /capacity/network/notification + :noindex: -.. uml:: + **Example notification**: - @startuml - class CapacityChangeNotification { - + capacityInformation [0..1]: CapacityInformationClass - + zone [0..1]: Identifier - + notificationTime [1]: DateTime - + notificationId [1]: Identifier - } + .. sourcecode:: http - CapacityChangeNotification "1" *- "0..1" CapacityInformationClass : "" - @enduml + Content-Type: application/json -.. -* + { + "notificationId": "yxwvut-srqpon-876543210", + "capacityChangeTime": "2015-09-28T00:02:10Z", + "resourceDescriptor": { + "networkResourceTypeId": "publicIps" + }, + "capacityInformation": { + "available": 4, + "reserved": 10, + "total": 64, + "allocated": 50 + } + } + +Network Resource Reservation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Notification about capacity changes +Create Network Resource Reservation +___________________________________ -Notify Parameters: +Request the reservation of network resource capacity and/or virtual networks, network ports -* 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. +.. http:post:: /reservation/network/create + :noindex: -Application/json:: + **Example request**: - { - "capacity": { - "numvcinstances": { - "used": 16, - "reserved": 2, - "total": 20 + .. sourcecode:: http + + POST /reservation/network/create HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-28T01:00:00Z", + "networkReservation": { + "numPublicIps": 2 + } } - }, - "zone": "opnfv-JP8", - "notificationTime":"2015-03-23T12:00:05Z", - "notificationId":"abcdef-ghijkl-123456789" - } -Resource Reservation -^^^^^^^^^^^^^^^^^^^^ + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-28T01:00:00Z", + "reservationStatus": "initialized", + "reservationId": "wwww-xxxx-yyyy", + "networkReserved": { + "publicIps": [ + "10.2.91.60", + "10.2.91.61" + ] + } + } + } + +Query Network Resource Reservation +__________________________________ + +Request to find out about reserved network resources that the consumer has access to. + +.. http:get:: /reservation/network/query + :noindex: -Create Resource Reservation -___________________________ - -**CreateResourceReservationRequest (NFVO -> VIM)** - -.. uml:: - - @startuml - class CreateResourceReservationRequest { - + startTime [0..1]: DateTime - + endTime [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]: DateTime - + endTime [0..1]: DateTime - + 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 + **Example request**: + + .. sourcecode:: http + + GET /reservation/network/query HTTP/1.1 + Accept: application/json + + { + "queryReservationFilter": [ + { + "reservationId": "wwww-xxxx-yyyy" + } + ] + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-28T01:00:00Z", + "reservationStatus": "active", + "reservationId": "wwww-xxxx-yyyy", + "networkReserved": "publicIps": [ + "10.2.91.60", + "10.2.91.61" + ] + } + } + +Update Network Resource Reservation +___________________________________ + +Request to update network resource reservation + +.. http:post:: /reservation/network/update + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/network/update HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-21T16:00:00Z", + "reservationId": "wwww-xxxx-yyyy" + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-21T16:00:00Z", + "reservationStatus": "active", + "reservationId": "wwww-xxxx-yyyy", + "networkReserved": { + "publicIps": [ + "10.2.91.60", + "10.2.91.61" + ] + } + } + } + +Terminate Network Resource Reservation +______________________________________ +Request to terminate a network resource reservation + +.. http:delete:: /reservation/network/(reservation_id) + :noindex: + +Virtualised Storage Resources +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Storage Capacity Management +^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Subscribe Storage Capacity Change Event +_______________________________________ + +Subscription from Consumer to VIM to be notified about storage capacity changes + +.. http:post:: /capacity/storage/subscribe + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /capacity/storage/subscribe HTTP/1.1 + Accept: application/json + + { + "resourceDescriptor": [ + { + "storageResourceTypeId": "volumes" + } + ], + "threshold": [ + { + "capacity_info": "available", + "condition": "lt", + "value": 3 + } + ] + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "created": "2015-09-28T12:00:00Z", + "capacityChangeSubscriptionId": "cdefgh-ijklmn-345678901" + } + +Query Storage Capacity +______________________ + +Request to find out about available, reserved, total and allocated storage capacity. + +.. http:get:: /capacity/storage/query + :noindex: + + **Example request**: + + .. sourcecode:: http + + GET /capacity/storage/query HTTP/1.1 + Accept: application/json + + { + "resourceDescriptor": { + "storageResourceTypeId": "volumes" + }, + "timePeriod": { + "startTime": "2015-09-28T12:00:00Z", + "stopTime": "2015-09-28T12:04:45Z" + } + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "lastUpdate": "2015-09-28T12:01:35Z", + "capacityInformation": { + "available": 2, + "reserved": 4, + "total": 10, + "allocated": 4 + } + } + +Notify Storage Capacity Change Event ____________________________________ -**SubscribeRequest (Consumer -> VIM)** +Notification about storage capacity changes + +.. http:post:: /capacity/storage/notification + :noindex: + + **Example notification**: + + .. sourcecode:: http + + Content-Type: application/json + + { + "notificationId": "xwvuts-rqponm-765432109", + "capacityChangeTime": "2015-09-28T12:01:35Z", + "resourceDescriptor": { + "storageResourceTypeId": "volumes" + }, + "capacityInformation": { + "available": 2, + "reserved": 4, + "total": 10, + "allocated": 4 + } + } + +Storage Resource Reservation +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Create Storage Resource Reservation +___________________________________ + +Request the reservation of storage resource capacity + +.. http:post:: /reservation/storage/create + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/storage/create HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-28T13:00:00Z", + "storagePoolReservation": { + "storageSize": 10, + "numSnapshots": 3, + "numVolumes": 2 + } + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 201 CREATED + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-28T13:00:00Z", + "reservationStatus": "initialized", + "reservationId": "vvvv-wwww-xxxx", + "storagePoolReserved": { + "storageSize": 10, + "numSnapshots": 3, + "numVolumes": 2 + } + } + } + +Query Storage Resource Reservation +__________________________________ +Request to find out about reserved storage resources that the consumer has access to. + +.. http:get:: /reservation/storage/query + :noindex: + + **Example request**: + + .. sourcecode:: http + + GET /reservation/storage/query HTTP/1.1 + Accept: application/json + + { + "queryReservationFilter": [ + { + "reservationId": "vvvv-wwww-xxxx" + } + ] + } + + **Example response**: + + .. sourcecode:: http + + HTTP/1.1 200 OK + Content-Type: application/json + + { + "reservationData": { + "startTime": "2015-09-28T13:00:00Z", + "reservationStatus": "active", + "reservationId": "vvvv-wwww-xxxx", + "storagePoolReserved": { + "storageSize": 10, + "numSnapshots": 3, + "numVolumes": 2 + } + } + } + +Update Storage Resource Reservation +___________________________________ + +Request to update storage resource reservation + +.. http:post:: /reservation/storage/update + :noindex: + + **Example request**: + + .. sourcecode:: http + + POST /reservation/storage/update HTTP/1.1 + Accept: application/json + + { + "startTime": "2015-09-20T23:00:00Z", + "reservationId": "vvvv-wwww-xxxx" + } + + **Example response**: -.. 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 + .. sourcecode:: http -**NotifyReservationEvent (VIM -> Consumer)** + HTTP/1.1 201 CREATED + Content-Type: application/json -.. 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 - } + { + "reservationData": { + "startTime": "2015-09-20T23:00:00Z", + "reservationStatus": "active", + "reservationId": "vvvv-wwww-xxxx", + "storagePoolReserved": { + "storageSize": 10, + "numSnapshots": 3, + "numVolumes": 2 + } + } + } - 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 +Terminate Storage Resource Reservation +______________________________________ +Request to terminate a storage resource reservation +.. http:delete:: /reservation/storage/(reservation_id) + :noindex: Detailed Message Flows ---------------------- diff --git a/requirements/08-revision.rst b/requirements/08-revision.rst index 2db306d..b543fa5 100644 --- a/requirements/08-revision.rst +++ b/requirements/08-revision.rst @@ -8,5 +8,9 @@ ANNEX B: DOCUMENT REVISION | | - Reference to YangForge Framework | | | - Corrections to figure 3.1 | +---------+-----------------------------------------+ -| | | +| 1.0.2 | JIRA: PROMISE-11 | +| | - OPNFV Logo Added | +| | - Alignment to ETSI NFV Specs | ++---------+-----------------------------------------+ +| |                                         | +---------+-----------------------------------------+ diff --git a/requirements/glossary.rst b/requirements/glossary.rst index 99b593f..1addb9c 100644 --- a/requirements/glossary.rst +++ b/requirements/glossary.rst @@ -31,6 +31,11 @@ mapping/translating the OPNFV terms to terminology used in other contexts. Physical resource Actual resources in NFVI; not visible to Consumer. + Resource zone + A set of NFVI hardware and software resources logically grouped + according to physical isolation and redundancy capabilities or to + certain administrative policies for the NFVI [NFVIFA010]_ + VIM Virtualized Infrastructure Manager; functional block that is responsible for controlling and managing the NFVI compute, storage and network diff --git a/requirements/images/computeflavor.png b/requirements/images/computeflavor.png new file mode 100755 index 0000000000000000000000000000000000000000..3ea3dba3e837b94fa4fde28b9754932b69f6f910 GIT binary patch literal 105698 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�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