Updated list of upstream contributions in Blazar
[promise.git] / deprecated / source / README.md
1 # Resource Management for Virtual Infrastructure
2
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.
4
5 The following are the key features provided by this module:
6
7 * Resource Capacity Management
8 * Resource Reservation
9 * Resource Allocation
10
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.
12
13 ## Installation
14
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.
18
19 ```bash
20 $ npm install -g yangforge
21 ```
22
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).
24
25 ## Usage
26 ```bash
27 $ yfc run promise.yaml
28 ```
29
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
34 on port 5000.
35
36 You can also checkout this GIT repository or simply download the files
37 into your local system and run the application.
38
39 ## Testing
40
41 ```bash
42 $ npm install
43 $ npm test
44 ```
45
46 TBD
47
48 ## Primary YANG Data Models
49
50 name | description | status
51 --- | --- | ---
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
56
57 ## Promise Information Models
58
59 ### ResourceReservation
60
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).
64
65 #### Key Elements
66
67 Name | Type | Description
68 ---  | ---  | ---
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
76
77 #### State Elements (read-only)
78
79 State Elements are available as part of lookup response about the data model.
80
81 Name | Type | Description
82 ---  | ---  | ---
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
86
87 #### Notification Elements
88
89 Name | Type | Description
90 ---  | ---  | ---
91 reservation-event | Event | Subscribers will be notified if the reservation encounters an error or other events
92
93 #### Inherited Elements
94
95 ##### Extended from [nfvi:ResourceElement](schema/nfv-infrastructure.yang)
96
97 Name | Type | Description
98 ---  | ---  | ---
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
107
108 ### Resource Allocation
109
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).
113
114 #### Key Elements
115
116 Name | Type | Description
117 ---  | ---  | ---
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
121
122 #### State Elements (read-only)
123
124 Name | Type | Description
125 ---  | ---  | ---
126 priority | number | Read-only state information about the priority classification of the reservation
127
128 #### Inherited Elements
129
130 ##### Extended from [nfvi:ResourceElement](schema/nfv-infrastructure.yang)
131
132 Name | Type | Description
133 ---  | ---  | ---
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
142
143 ## License
144   [Apache-2.0](LICENSE)