Resource Management for Virtual Infrastructure
Promise is a resource reservation and management project to identify NFV related requirements and realize resource reservation for future usage by capacity management of resource pools regarding compute, network and storage.
The following are the key features provided by this module:
- Resource Capacity Management
- Resource Reservation
- Resource Allocation
This module also contains a collection of YANG data models as defined under the direction of OPNFV Promise project.
Installation
opnfv-promise
is built with YangForge data modeling
framework. You will need to first install yangforge
and use the
provided yfc
command line utility to run this module.
$ npm install -g yangforge
There are also alternative installer plugins for Fuel and Juju.
Usage
$ yfc run promise.yaml
The yfc run
command will load the primary application
package from this repository along with any other dependency
files/assets referenced within the YAML manifest and instantiate the
opnfv-promise module and run REST/JSON interface by default listening
on port 5000.
You can also checkout this GIT repository or simply download the files into your local system and run the application.
Testing
$ npm install$ npm test
TBD
Primary YANG Data Models
name | description | status |
---|---|---|
opnfv-promise | provide resource reservation and capacity management | 95% complete |
nfv-infrastructure | common NFV Infrastructure resource models | 80% complete |
nfv-mano | common NFV MANO resource models including VIM | 20% complete |
openstack | openstack specific VIM extensions | 50% complete |
Promise Information Models
ResourceReservation
The data model describing the required parameters regarding a resource reservation. The schema definition expressed in Yang can be found here.
Key Elements
Name | Type | Description |
---|---|---|
start | ys:date-and-time | Timestamp of when the consumption of reserved resources can begin |
end | ys:date-and-time | Timestamp of when the consumption of reserved resource must end |
expiry | number | Duration expressed in seconds since start when resource not yet allocated shall be released back to the available zone |
zone | nfvi:AvailabilityZone | Reference to a zone where the resources will be reserved |
capacity | object | Quantity of resources to be reserved per resource types |
attributes | list | References to resource attributes needed for reservation |
resources | list (nfvi:ResourceElement) | Reference to a collection of existing resource elements required |
State Elements (read-only)
State Elements are available as part of lookup response about the data model.
Name | Type | Description |
---|---|---|
provider | nfvi:ResourceProvider | Reference to a specific provider when reservation service supports multiple providers |
remaining | object | Quantity of resources remaining for consumption based on consumed allocations |
allocations | list (nfvi:ResourceAllocation) | Reference to a collection of consumed allocations referencing this reservation |
Notification Elements
Name | Type | Description |
---|---|---|
reservation-event | Event | Subscribers will be notified if the reservation encounters an error or other events |
Inherited Elements
nfvi:ResourceElement
Extended fromName | Type | Description |
---|---|---|
id | yang:uuid | A GUID identifier for the data model (usually auto-generated, but can also be specified) |
name | string | Name of the data model |
enabled | boolean | Enable/Disable the data model |
protected | boolean | Prevent model from being destroyed when protected |
owner | nfvi:AccessIdentity | An owner for the data model |
visibility | enumeration | Visibility level of the given data model |
tags | list (string) | List of string tags for query/filter |
members | list (nfvi:AccessIdentity) | List of additional AccessIdentities that can operate on the data model |
Resource Allocation
The data model describing the required parameters regarding a resource allocation. The schema definition expressed in YANG can be found here.
Key Elements
Name | Type | Description |
---|---|---|
reservation | nfvi:ResourceReservation | Reference to an existing reservation identifier |
allocate-on-start | boolean | Specify whether the allocation can take effect automatically upon reservation 'start' |
resources | list (nfvi:ResourceElement) | Reference to a collection of new resource elements to be allocated |
State Elements (read-only)
Name | Type | Description |
---|---|---|
priority | number | Read-only state information about the priority classification of the reservation |
Inherited Elements
nfvi:ResourceElement
Extended fromName | Type | Description |
---|---|---|
id | yang:uuid | A GUID identifier for the data model (usually auto-generated, but can also be specified) |
name | string | Name of the data model |
enabled | boolean | Enable/Disable the data model |
protected | boolean | Prevent model from being destroyed when protected |
owner | nfvi:AccessIdentity | An owner for the data model |
visibility | enumeration | Visibility level of the given data model |
tags | list (string) | List of string tags for query/filter |
members | list (nfvi:AccessIdentity) | List of additional AccessIdentities that can operate on the data model |