summaryrefslogtreecommitdiffstats
path: root/docs/development/manuals/api_mapping.rst
blob: 6a1bfb7c683d367c93b80d215492f9733222895a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

=======================================
Resource reservation mapping tables
=======================================

The following tables are an attempt to map the resource reservation APIs / interfaces between ETSI
NFV-IFA005 and Blazar for OpenStack.

I. Create Compute Resource Reservation
======================================

I.a) Create compute pool/resources reservation REQUEST
------------------------------------------------------

+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                | Blazar                                | Description                                    | Comment                                         |
+==+=============================+=+=====================================+================================================+=================================================+
| \-                             | name                                  | Name of the lease/reservation.                 |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| computePoolReservation [1]:    | **reservations**:                     |                                                | **Instance reservation is only available        |
| **ComputePoolReservation**     | resource_type = 'virtual:instance'    |                                                | from OpenStack Pike release.**                  |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | \-                          | | amount                              | Amount of virtual instances of a given         |                                                 |
|  |                             | |                                     | flavour to be reserved.                        |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | numCpuCores [1]: Integer    | | vcpus                               | Number of vCPU cores to be reserved.           |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | numVcInstances [1]:         | | \-                                  | Number of virtualized container instances to   |                                                 |
|  | Integer                     | |                                     | be reserved (without explicitly reserved       |                                                 |
|  |                             | |                                     | specific virtual containers).                  |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | virtualMemSize [1]: Number  | | memory_mb                           | Size of virtual memory to be reserved.         |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | \-                          | | disk_gb                             | Size of (disk) storage to be reserved.         |                                                 |
+--+-----------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
|  | computeAttributes [0..1]:   | | \-                                  | Information specifying additional attributes   | Not yet available in Pike release.              |
|  | VirtualComputeAttributes    | |                                     | of the compute resource to be reserved.        | Blueprint available in [#bp1]_                  |
|  | ReservationData             | |                                     |                                                |                                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| affinityConstraint [0..N]:     | | affinity: Boolean                   | Element with (anti-)affinity information of    | Only boolean (anti-)affinity rule in            |
| AffinityOrAnti                 | |                                     | the virtualised compute resources to reserve.  | Pike release.                                   |
| AffinityConstraint             | |                                     | For the resource reservation at resource       | Blueprint available in [#bp2]_                  |
|                                | |                                     | pool granularity level, it defines the         |                                                 |
+--------------------------------+ +                                     + (anti-)affinity information of the virtual     +                                                 +
| antiAffinityConstraint [0..N]: | |                                     | compute pool resources to reserve. For         |                                                 |
| AffinityOrAnti                 | |                                     | the resource reservation at virtual            |                                                 |
| AffinityConstraint             | |                                     | container granularity level, it defines        |                                                 |
|                                | |                                     | the (anti-)affinity information of the         |                                                 |
|                                | |                                     | virtualisation container(s) to reserve.        |                                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| startTime [0..1]: TimeStamp    | start_date [0..1]: DateTime           | Timestamp indicating the earliest time to      | Resources are reserved for immediate use if:    |
|                                |                                       | start the consumption of the resources.        |                                                 |
|                                |                                       |                                                | * (Blazar) the start_date parameter is omitted  |
|                                |                                       |                                                | * (ETSI NFV IFA005) the startTime value is 0    |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| endTime [0..1]: TimeStamp      | end_date [0..1]: DateTime             | Timestamp indicating the end time of the       | * (ETSI NFV IFA005) If the attribute is not     |
|                                |                                       | reservation (when the issuer of the request    |   present, resources are reserved for unlimited |
|                                |                                       | expects that the resources will no longer be   |   usage time.                                   |
|                                |                                       | needed) and used by the VIM to schedule the    | * (Blazar) If the parameter is not present,     |
|                                |                                       | reservation.                                   |   resources are reserved for 24h after the      |
|                                |                                       |                                                |   start_date.                                   |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| expiryTime [0..1]: TimeStamp   | \-                                    | Timestamp indicating the time the VIM can      | Not yet available in Pike release.              |
|                                |                                       | release the reservation in case no allocation  |                                                 |
|                                |                                       | request against this reservation was made.     |                                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| \-                             | before_end_notification               | Timestamp indicating when the                  | * (ETSI NFV IFA005) not specified               |
|                                |                                       | *before_end action* will be executed, e.g.     | * (Blazar) Not yet implemented for pool/        |
|                                |                                       | take a snapshot of the resources of the lease. |   resources reservation, but only host          |
|                                |                                       |                                                |   reservations.                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| locationConstraints [0..1]:    | \-                                    | If present, it defines location constraints    | Not yet available in Pike release.              |
| \-*tbd*\-                      |                                       | for the resource(s) is (are) requested to be   | Blueprint available in [#bp3]_                  |
|                                |                                       | reserved, e.g. in what particular Resource     |                                                 |
|                                |                                       | Zone.                                          |                                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+
| resourceGroupId [0..1]:        | project_id: Identifier                | Unique identifier of the "infrastructure       |                                                 |
| Identifier                     |                                       | resource group", logical grouping of virtual   |                                                 |
|                                |                                       | resources assigned to a tenant within an       |                                                 |
|                                |                                       | Infrastructure Domain.                         |                                                 |
+--------------------------------+-+-------------------------------------+------------------------------------------------+-------------------------------------------------+

.. note::  In Blazar reservations are encapsulated in leases, whereby one lease can have several reservations (i.e. reserved resources) with the same start and end dates.

.. note::  In the reservation system (e.g. Blazar) each lease/reservation has additional implementation level attributes not listed in the mapping tables in this document, e.g. lease_id, status, status reason, action, …, and which are not included in reservation requests.

I.b) Create virtualisation container reservation REQUEST
--------------------------------------------------------

+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                           | Blazar                                | Description                                      | Comment                                         |
+==+========================================+=+=====================================+==================================================+=================================================+
| \-                                        | name                                  | Name of the lease/reservation.                   |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|                                           | **reservations**                      |                                                  |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|                                           | | resource_type = '...'               |                                                  |                                                 +
|                                           | |                                     |                                                  |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| virtualisationContainerReservation        | |                                     | Virtualisation containers that need to be        |                                                 |
| [0..N]:                                   | |                                     | reserved (e.g. following a specific compute      |                                                 |
|                                           | |                                     | "flavour").                                      |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | **VirtualisationContainerReservation** | |                                     |                                                  |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | containerId [1]: Identifier            | |                                     | Identifier given to the compute flavour.         |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | flavourId [1]: Identifier              | |                                     | The containerFlavour encapsulates information    |                                                 |
|  |                                        | |                                     | of the virtualisation container to be reserved.  |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | accelerationCapability [0..N]:         | |                                     | Selected acceleration capabilities (e.g. crypto, |                                                 |
|  | \-*tbd*\-                              | |                                     | GPU) from the set of capabilities offered by the |                                                 |
|  |                                        | |                                     | compute node acceleration resources.             |                                                 |
|  |                                        | |                                     | The cardinality can be 0, if no particular       |                                                 |
|  |                                        | |                                     | acceleration capability is requested.            |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | virtualMemory [1]: VirtualMemoryData   | |                                     | Virtual memory of the virtualised compute.       |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | virtualCpu [1]: VirtualCpuData         | |                                     | Virtual CPU(s) of the virtualised compute.       |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | storageAttributes [0..N]:              | |                                     | Element containing information about the size of |                                                 |
|  | VirtualStorageData                     | |                                     | virtualised storage resource (e.g. size of       |                                                 |
|  |                                        | |                                     | volume, in GB), the type of storage (e.g.,       |                                                 |
|  |                                        | |                                     | volume, object), and support for RDMA.           |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
|  | virtualNetworkInterface [0..N]:        | |                                     | Virtual network interfaces of the virtualised    |                                                 |
|  | VirtualNetworkInterface                | |                                     | compute.                                         |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| affinityConstraint [0..N]:                | | affinity: Boolean                   | Element with (anti-)affinity information of      | Affinity and AntiAffinity rules are not yet     |
| AffinityOrAntiAffinityConstraint          | |                                     | the virtualised compute resources to reserve.    | available in Pike release.                      |
|                                           | |                                     | For the resource reservation at resource         |                                                 |
|                                           | |                                     | pool granularity level, it defines the           |                                                 |
+--+----------------------------------------+ +                                     + (anti-)affinity information of the virtual       +                                                 +
| antiAffinityConstraint [0..N]:            | |                                     | compute pool resources to reserve. For           |                                                 |
| AffinityOrAntiAffinityConstraint          | |                                     | the resource reservation at virtual              |                                                 |
|                                           | |                                     | container granularity level, it defines          |                                                 |
|                                           | |                                     | the (anti-)affinity information of the           |                                                 |
|                                           | |                                     | virtualisation container(s) to reserve.          |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| startTime [0..1]: TimeStamp               | start_date [0..1]: DateTime           | Timestamp indicating the earliest time to        | Resources are reserved for immediate use if:    |
|                                           |                                       | start the consumption of the resources.          |                                                 |
|                                           |                                       |                                                  | * (Blazar) the start_date parameter is omitted  |
|                                           |                                       |                                                  | * (ETSI NFV IFA005) the startTime value is 0    |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| endTime [0..1]: TimeStamp                 | end_date [0..1]: DateTime             | Timestamp indicating the end time of the         | * (ETSI NFV IFA005) If the attribute is not     |
|                                           |                                       | reservation (when the issuer of the request      |   present, resources are reserved for unlimited |
|                                           |                                       | expects that the resources will no longer be     |   usage time.                                   |
|                                           |                                       | needed) and used by the VIM to schedule the      | * (Blazar) If the parameter is not present,     |
|                                           |                                       | reservation.                                     |   resources are reserved for 24h after the      |
|                                           |                                       |                                                  |   start_date.  **to be checked**                |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| expiryTime [0..1]: TimeStamp              | \-                                    | Timestamp indicating the time the VIM can        | Not yet available in Pike release.              |
|                                           |                                       | release the reservation in case no allocation    |                                                 |
|                                           |                                       | request against this reservation was made.       |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| \-                                        | before_end_notification               | Timestamp indicating when the                    |                                                 |
|                                           |                                       | *before_end action* will be executed, e.g.       |                                                 |
|                                           |                                       | take a snapshot of the resources of the lease.   |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| locationConstraints [0..1]:               | \-                                    | If present, it defines location constraints for  | Not yet available in Pike release.              |
| \-*tbd*\-                                 |                                       | the resource(s) is (are) requested to be         |                                                 |
|                                           |                                       | reserved, e.g. in what particular Resource Zone. |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+
| resourceGroupId [0..1]:                   | project_id: Identifier                | Unique identifier of the "infrastructure         |                                                 |
| Identifier                                |                                       | resource group", logical grouping of virtual     |                                                 |
|                                           |                                       | resources assigned to a tenant within an         |                                                 |
|                                           |                                       | Infrastructure Domain.                           |                                                 |
+--+----------------------------------------+-+-------------------------------------+--------------------------------------------------+-------------------------------------------------+

I.c) Create reservation RESPONSE
--------------------------------

+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                        | Blazar                                | Description                                         | Comment                                         |
+==+=+===================================+=+=====================================+=====================================================+=================================================+
| **ReservedVirtualCompute** [1]:        | **reservations**                      |                                                     |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | computePoolReserved [0..1]:         | | resource_type = ‘virtual:instance’  | Information about compute resources that have been  | **Instance reservation is available from        |
|  | **ReservedComputePool**             | |                                     | reserved, e.g. {"cpu_cores":90, "vm_instances":10,  | Pike release.**                                 |
|  |                                     | |                                     | "ram":10000}.                                       |                                                 |
|  |                                     | |                                     | In Blazar resource_type = ‘virtual:instance’        |                                                 |
|  |                                     | |                                     | if the reservation was for virtual instances.       |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | id                                  | Identifier of the reservation.                      |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | lease-id                            | Identifier of the corresponding lease.              |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | resource_id                         | ??                                                  |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | amount                              | Amount of virtual instances of a given flavour that |                                                 |
|  | |                                   | |                                     | have been reserved.                                 |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | numVcInstances [1]: Integer       | | \-                                  | Number of virtual container instances that have     |                                                 |
|  | |                                   | |                                     | been reserved.                                      |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | numCpuCores [1]: Integer          | | vcpus                               | Number of CPU cores that have been reserved.        |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | virtualMemSize [1]: Number        | | memory_mb                           | Size of virtual memory that has been reserved.      |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | disk_gb                             | Size of (disk) storage that has been reserved.      |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | \-                                | | affinity: Boolean                   | Affinity information of the reserved resources.     | (NFV-IFA005) no such information is returned.   |
|  | |                                   | |                                     |                                                     | Recommendation to add this attribute to the     |
|  | |                                   | |                                     |                                                     | response message.                               |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | computeAttributes [0..1]:         | | \-                                  | Information specifying additional attributes of     |                                                 |
|  | | VirtualComputeAttributes          | |                                     | the virtual compute resource that have been         |                                                 |
|  | | ReservationData                   | |                                     | reserved.                                           |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | virtualisationContainerReserved     | |                                     | Information about the virtualisation                |                                                 |
|  | [0..N]: **ReservedVirtualisation    | |                                     | container(s) that have been reserved.               |                                                 |
|  | Container**                         | |                                     |                                                     |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | containerId [1]: Identifier       | |                                     | Identifier of the virtualisation container that has |                                                 |
|  | |                                   | |                                     | been reserved.                                      |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | flavourId [1]: Identifier         | |                                     | Identifier of the given compute flavour used in the |                                                 |
|  | |                                   | |                                     | reserved virtualisation container.                  |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | accelerationCapability [0..N]:    | |                                     | Selected acceleration capabilities (e.g. crypto,    |                                                 |
|  | | \-*tbd*\-                         | |                                     | GPU) from the set of capabilities offered by the    |                                                 |
|  | |                                   | |                                     | compute node acceleration resources.                |                                                 |
|  | |                                   | |                                     | The cardinality can be 0, if no particular          |                                                 |
|  | |                                   | |                                     | acceleration capability is provided.                |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | virtualMemory [1]:                | |                                     | Virtual memory of the reserved virtualisation       |                                                 |
|  | | VirtualMemoryData                 | |                                     | container.                                          |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | virtualCpu [1]:                   | |                                     | Virtual CPU(s) of the reserved virtualisation       |                                                 |
|  | | VirtualCpuData                    | |                                     | container.                                          |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | virtualDisks [0..N]:              | |                                     | Element with information of the virtualised storage |                                                 |
|  | | VirtualStorage                    | |                                     | resources attached to the reserved virtualisation   |                                                 |
|  | |                                   | |                                     | container.                                          |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | virtualNetworkInterface [0..N]:   | |                                     | Element with information of the virtual network     |                                                 |
|  | | VirtualNetworkInterface           | |                                     | interfaces of the reserved virtualisation container |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | | zoneId [0..1]:                    | |                                     | References the resource zone where the              |                                                 |
|  | | Identifier (reference to          | |                                     | virtualisation container has been reserved.         |                                                 |
|  | | ResoureZone)                      | |                                     | Cardinality can be 0 to cover the case where        |                                                 |
|  | |                                   | |                                     | reserved network resources are not bound to a       |                                                 |
|  | |                                   | |                                     | specific resource zone.                             |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | reservationStatus [1]: Enum         | | status;                             | Status of the compute resource reservation, e.g.    |                                                 |
|  |                                     | | status_reason                       | to indicate if a reservation is being used          |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | startTime [0..1]: TimeStamp         | | start_date [1]                      | Indication when the consumption of the resources    |                                                 |
|  |                                     | |                                     | starts. If the value is 0, resources are reserved   |                                                 |
|  |                                     | |                                     | for immediate use.                                  |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | endTime [0..1]: TimeStamp           | | end_date [1]                        | Indication when the reservation ends (when it is    |                                                 |
|  |                                     | |                                     | expected that the resources will no longer be       |                                                 |
|  |                                     | |                                     | needed) and used by the VIM to schedule the         |                                                 |
|  |                                     | |                                     | reservation. If not present, resources are reserved |                                                 |
|  |                                     | |                                     | for unlimited usage time.                           |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | expiryTime [0..1]: TimeStamp        | | \-                                  | Indication when the VIM can release the reservation |                                                 |
|  |                                     | |                                     | in case no allocation request against this          |                                                 |
|  |                                     | |                                     | reservation was made.                               |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+
|  | \-                                  | | events                              |                                                     |                                                 |
+--+-+-----------------------------------+-+-------------------------------------+-----------------------------------------------------+-------------------------------------------------+

II. Query / list compute resource reservation
=============================================

II.a) REQUEST
----------------

+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                  | Blazar                               | Description                                    | Comment                                         |
+==================================+======================================+================================================+=================================================+
| queryReservationFilter [1]:      | lease_id                             | Query filter based on e.g. name, identifier,   | Blazar does not yet allow to list leases based  |
| Filter                           |                                      | meta-data information or status information    | on a filter. In Blazar you can either list all  |
|                                  |                                      | expressing the type of information to be       | leases registered in Blazar (GET /v1/leases) or |
|                                  |                                      | retrieved. It can also be used to specify one  | show information about a specific lease         |
|                                  |                                      | or more reservations to be queried by          | (GET /v1/leases/{lease-id}).                     |
|                                  |                                      | providing their identifiers.                   |                                                 |
+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+


II.a) RESPONSE
----------------

+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                  | Blazar                               | Description                                    | Comment                                         |
+==================================+======================================+================================================+=================================================+
| queryResult [0..N]:              | leases{ reservations {..} }          | Element containing information about the       | For attributes of ReservedVirtualCompute        |
| ReservedVirtualCompute           |                                      | reserved resource. Cardinality is 0 if the     | see clause I.c.                                 |
|                                  |                                      | query did not return any result.               |                                                 |
+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+


III. Update reservation
=================================

.. note:: Compute host reservations in Blazar supports updating for name, start time, and end time.

.. note:: Instance reservation does not yet support the update operation. A bug report is available in [#bp4]_ .


III.a) REQUEST
----------------

+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                    | Blazar                               | Description                                         | Comment                                         |
+====================================+======================================+=====================================================+=================================================+
| reservationId [1]: Id              | lease_id                             | Identifier of the existing resource                 |                                                 |
|                                    |                                      | reservation to be updated.                          |                                                 |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| \-                                 | name                                 | Name of the lease/reservation.                      |                                                 |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| computePoolReservation [0..1]:     | \-                                   | New amount of compute resources to be reserved.     | For attributes of ComputePoolReservation see    |
| ComputePoolReservation             |                                      |                                                     | clause I.a.                                     |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| virtualisationContainer            | \-                                   | New virtualisation containers to be reserved        | For attributes of                               |
| Reservation [0..N]:                |                                      | (e.g. following a specific compute "flavour").      | VirtualisationContainerReservation see          |
| VirtualisationContainerReservation |                                      |                                                     | clause I.b.                                     |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| startTime [0..1]: TimeStamp        | start_date [1]                       | Indication when the consumption of the resources    |                                                 |
|                                    |                                      | resources starts. If not present, the original      |                                                 |
|                                    |                                      | setting will not be changed. If present and the     |                                                 |
|                                    |                                      | value is 0, resources are reserved for              |                                                 |
|                                    |                                      | immediate use.                                      |                                                 |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| endTime [0..1]: TimeStamp          | end_date [1]                         | Indication when the reservation ends (when it is    |                                                 |
|                                    |                                      | expected that the resources will no longer be       |                                                 |
|                                    |                                      | needed) and used by the VIM to schedule the         |                                                 |
|                                    |                                      | reservation. If not present, resources are reserved |                                                 |
|                                    |                                      | for unlimited usage time.                           |                                                 |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+
| expiryTime [0..1]: TimeStamp       | \-                                   | Indication when the VIM can release the reservation |                                                 |
|                                    |                                      | in case no allocation request against this          |                                                 |
|                                    |                                      | reservation was made.                               |                                                 |
+------------------------------------+--------------------------------------+-----------------------------------------------------+-------------------------------------------------+


III.a) RESPONSE
----------------

+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                  | Blazar                               | Description                                    | Comment                                         |
+==================================+======================================+================================================+=================================================+
| reservationData [0..N]:          | leases { reservations {..} }         | Element containing information about the       | For attributes of ReservedVirtualCompute and    |
| ReservedVirtualCompute           |                                      | updated reserved resource.                     | Blazar reservations see clause I.c.             |
+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+


IV. Terminate compute resource reservation
=============================================

IV.a) REQUEST
---------------

+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                  | Blazar                               | Description                                    | Comment                                         |
+==================================+======================================+================================================+=================================================+
| reservationId [1..N]: Identifier | lease_id                             | Identifier of the resource reservation(s) to   |                                                 |
|                                  |                                      | terminate.                                     |                                                 |
+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+


IV.a) RESPONSE
----------------

+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+
| ETSI NFV IFA005                  | Blazar                               | Description                                    | Comment                                         |
+==================================+======================================+================================================+=================================================+
| reservationId [1..N]: Identifier | \-                                   | Identifier of the resource reservation(s)      | Blazar just returns a HTTP/1.1 204 NO CONTENT   |
|                                  |                                      | successfullly terminated.                      | response code.                                  |
+----------------------------------+--------------------------------------+------------------------------------------------+-------------------------------------------------+

V. Related Blueprint specs and bug reports
==========================================

.. [#bp1] Extra-specs for instance reservation: https://blueprints.launchpad.net/blazar/+spec/flavors-extra-specs

.. [#bp2] Instance reservation with no affinity rule: https://blueprints.launchpad.net/blazar/+spec/no-affinity-instance-reservation

.. [#bp3] Multi freepools (availability zones support: https://blueprints.launchpad.net/blazar/+spec/multi-freepools

.. [#bp4] Need update lease API support in instance reservation: https://bugs.launchpad.net/blazar/+bug/1714437