4 * Copyright 2016-2017 RIFT.IO Inc
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
23 namespace "http://riftio.com/ns/riftware-1.0/rw-vnfr";
39 prefix "project-vnfd";
50 import ietf-yang-types {
54 import ietf-inet-types {
64 "Update model to support projects.";
69 "Initial revision. This YANG file augments
72 "Derived from earlier versions of base YANG files";
75 grouping vnfr-operational-events {
76 list operational-events {
79 "Recent operational events for VNFR
80 Though the model does not impose any restrictions on the numbe of events,
81 the max operational events will be limited to the most recent 10";
84 description "The id of the instance";
90 "The timestamp of this event expressed as seconds since
91 unix epoch - 1970-01-01T00:00:00Z";
95 description "The event";
97 rwpb:enum-type "VnfrOperationalEvent";
98 enum instantiate-rcvd;
110 "The description of this event";
116 grouping vdur-operational-events {
117 list operational-events {
120 "Recent operational events for VDUR
121 Though the model does not impose any restrictions on the numbe of events,
122 the max operational events will be limited to the most recent 10";
125 description "The id of the instance";
131 "The timestamp of this event expressed as seconds since
132 unix epoch - 1970-01-01T00:00:00Z";
136 description "The event";
138 rwpb:enum-type "VdurOperationalEvent";
139 enum instantiate-rcvd;
140 enum vm-allocation-requested;
143 enum vm-terminate-requested;
149 "The description of this event";
155 augment /rw-project:project/vnfr:vnfr-catalog/vnfr:vnfr {
156 uses manotypes:action-param;
157 uses manotypes:control-param;
161 "The cloud account to use when requesting resources for
164 path "../../../rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
170 "Openmano datacenter name to use when instantiating
171 the network service. This is only used when openmano
172 is selected as the cloud account. This should be superceded
173 by multiple cloud accounts when that becomes available.";
177 container nfvi-metrics {
181 "Label to show in UI";
188 "The number of active VMs.";
194 "The number of inactive VMs.";
199 uses manotypes:nfvi-metrics;
204 "This section defines the RIFT.ware
206 key "component-name";
207 rwpb:msg-new VcsComponentOp;
208 rwpb:application-request-point;
210 leaf component-name {
215 leaf component-type {
217 type rwvcstypes:component_type;
222 case rwvcs-rwcollection {
223 uses rwvcstypes:rwvcs-rwcollection;
226 uses rwvcstypes:rwvcs-rwvm;
229 uses rwvcstypes:rwvcs-rwproc;
232 uses rwvcstypes:native-proc;
234 case rwvcs-rwtasklet {
235 uses rwvcstypes:rwvcs-rwtasklet;
240 uses vnfr-operational-events;
242 leaf operational-status-details {
244 "The error message in case of a failed VNFR operational status";
249 augment /rw-project:project/vnfr:vnfr-catalog/vnfr:vnfr/vnfr:vdur {
252 "The pool from which this vm was allocated from";
256 container nfvi-metrics {
257 uses manotypes:nfvi-metrics;
260 leaf vcs-component-ref {
262 "This defines the software components using the
263 RIFT.ware Virtual Component System (VCS). This
264 also allows specifying a state machine during
266 NOTE: This is an significant addition to MANO,
267 since MANO doesn't clearly specify a method to
268 identify various software components in a VM.
269 Also using a state machine is not something that
270 is well described in MANO.";
272 path "../../rw-vnfr:component/rw-vnfr:component-name";
276 uses vdur-operational-events;
278 leaf operational-status-details {
280 "The error message in case of a failed VDU operational status";
285 grouping vnfd-ref-count {
286 list vnfd-ref-count {
288 description "This table maintains the number of VNFRs used by each VNFD";
291 description "Reference to VNFD";
293 path "../../../project-vnfd:vnfd-catalog/project-vnfd:vnfd/project-vnfd:id";
296 leaf instance-ref-count {
298 "Reference count for the number of VNFRs refering this VNFD.
299 Every VNF Record instantiated using this descriptor takes
300 a reference on the VNFD and releases the reference when the
301 virtual network service is terminated. This desciptor cannot
302 be deleted when this counter is non zero";
308 augment /rw-project:project/vnfr:vnfr-catalog {
312 augment /rw-project:project {
313 container vnfr-console {
318 description "Identifier for the VNFR.";
322 description "List of Virtual Deployment Units";
325 description "Unique id for the VDU";
329 description "Console URL for this VDU, if available";