1 # Resource Management for Virtual Infrastructure
3 **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.
5 The following are the key features provided by this module:
7 * Resource Capacity Management
11 This module also contains a collection of [YANG data models](schema/) as defined under the direction of [OPNFV Promise](http://wiki.opnfv.org/promise) project.
15 `opnfv-promise` is built with [YangForge](http://github.com/opnfv/yangforge) data modeling
16 framework. You will need to first install `yangforge` and use the
17 provided `yfc` command line utility to run this module.
20 $ npm install -g yangforge
23 There are also alternative installer plugins for [Fuel](http://github.com/opnfv/fuel-plugin-promise) and [Juju](http://github.com/opnfv/juju-plugin-promise).
27 $ yfc run promise.yaml
30 The `yfc run` command will load the primary application
31 package from this repository along with any other dependency
32 files/assets referenced within the YAML manifest and instantiate the
33 opnfv-promise module and run REST/JSON interface by default listening
36 You can also checkout this GIT repository or simply download the files
37 into your local system and run the application.
48 ## Primary YANG Data Models
50 name | description | status
52 [opnfv-promise](schema/opnfv-promise.yang) | provide resource reservation and capacity management | 95% complete
53 [nfv-infrastructure](schema/nfv-infrastructure.yang) | common NFV Infrastructure resource models | 80% complete
54 [nfv-mano](schema/nfv-mano.yang) | common NFV MANO resource models including VIM | 20% complete
55 [openstack](schema/openstack.yang) | openstack specific VIM extensions | 50% complete
57 ## Promise Information Models
59 ### ResourceReservation
61 The data model describing the required parameters regarding a resource
62 reservation. The schema definition expressed in Yang can be found
63 [here](schema/opnfv-promise.yang).
67 Name | Type | Description
69 start | ys:date-and-time | Timestamp of when the consumption of reserved resources can begin
70 end | ys:date-and-time | Timestamp of when the consumption of reserved resource must end
71 expiry | number | Duration expressed in seconds since `start` when resource not yet allocated shall be released back to the available zone
72 zone | nfvi:AvailabilityZone | Reference to a zone where the resources will be reserved
73 capacity | object | Quantity of resources to be reserved per resource types
74 attributes | list | References to resource attributes needed for reservation
75 resources | list (nfvi:ResourceElement) | Reference to a collection of existing resource elements required
77 #### State Elements (read-only)
79 State Elements are available as part of lookup response about the data model.
81 Name | Type | Description
83 provider | nfvi:ResourceProvider | Reference to a specific provider when reservation service supports multiple providers
84 remaining | object | Quantity of resources remaining for consumption based on consumed allocations
85 allocations | list (nfvi:ResourceAllocation) | Reference to a collection of consumed allocations referencing this reservation
87 #### Notification Elements
89 Name | Type | Description
91 reservation-event | Event | Subscribers will be notified if the reservation encounters an error or other events
93 #### Inherited Elements
95 ##### Extended from [nfvi:ResourceElement](schema/nfv-infrastructure.yang)
97 Name | Type | Description
99 id | yang:uuid | A GUID identifier for the data model (usually auto-generated, but can also be specified)
100 name | string | Name of the data model
101 enabled | boolean | Enable/Disable the data model
102 protected | boolean | Prevent model from being destroyed when protected
103 owner | nfvi:AccessIdentity | An owner for the data model
104 visibility | enumeration | Visibility level of the given data model
105 tags | list (string) | List of string tags for query/filter
106 members | list (nfvi:AccessIdentity) | List of additional AccessIdentities that can operate on the data model
108 ### Resource Allocation
110 The data model describing the required parameters regarding a resource
111 allocation. The schema definition expressed in YANG can be found
112 [here](schema/opnfv-promise.yang).
116 Name | Type | Description
118 reservation | nfvi:ResourceReservation | Reference to an existing reservation identifier
119 allocate-on-start | boolean | Specify whether the allocation can take effect automatically upon reservation 'start'
120 resources | list (nfvi:ResourceElement) | Reference to a collection of new resource elements to be allocated
122 #### State Elements (read-only)
124 Name | Type | Description
126 priority | number | Read-only state information about the priority classification of the reservation
128 #### Inherited Elements
130 ##### Extended from [nfvi:ResourceElement](schema/nfv-infrastructure.yang)
132 Name | Type | Description
134 id | yang:uuid | A GUID identifier for the data model (usually auto-generated, but can also be specified)
135 name | string | Name of the data model
136 enabled | boolean | Enable/Disable the data model
137 protected | boolean | Prevent model from being destroyed when protected
138 owner | nfvi:AccessIdentity | An owner for the data model
139 visibility | enumeration | Visibility level of the given data model
140 tags | list (string) | List of string tags for query/filter
141 members | list (nfvi:AccessIdentity) | List of additional AccessIdentities that can operate on the data model
144 [Apache-2.0](LICENSE)