4 * Copyright 2016 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/rwvcs-types";
30 import rw-yang-types {
34 import ietf-inet-types {
36 revision-date 2013-07-15;
41 "Initial implementation of RW.Manifest.";
43 "RW.VX Software Component Document";
46 typedef component_type {
56 typedef recovery-type {
66 grouping rwvcs-variable-list {
67 leaf-list python-variable {
69 "List of Python variable assignments";
78 "Run the component under valgrind";
84 "Command line options to pass to valgrind";
90 grouping action-list {
93 "This section contains a sequence
96 //rwpb:msg-new VcsAction;
100 "Name of the action within the sequence";
104 grouping rwvcs-python-loop {
105 leaf python-loop-expression {
106 description "Python expression";
110 leaf python-loop-iterate {
111 description "Python iteration";
115 uses rwvcs-python-loop;
120 leaf component-name {
122 "Name of the component type
125 path "../../../../../../../component/component-name";
130 "ID of the component instance
139 //rwpb:msg-new ActionStart;
141 uses rwvcs-variable-list;
142 leaf component-name {
144 "Name of the component type in
147 path "../../../../../../../component/component-name";
152 "ID of the component instance
158 "Config readiness check enable";
162 leaf recovery-action {
164 "Define recovery action if this component fail";
172 leaf wait-time-usec {
174 "Time to wait while sleeping";
181 } // grouping action-list
183 grouping rwvcs-event-list {
184 container event-list {
186 //rwpb:msg-new VcsEventList;
190 "This section contains a list
193 //rwpb:msg-new VcsEvent;
203 } // container event-list
204 } // grouping rwvcs-event-list
206 grouping rwvcs-rwcollection {
207 container rwcollection {
209 "This section defines a RW.VCS
210 rwollection component";
211 //rwpb:msg-new VcsRwCollection;
213 leaf collection-type {
214 description "Collection type";
218 uses rwvcs-event-list;
222 grouping rwvcs-rwvm {
225 "This section defines a RW.VCS
227 //rwpb:msg-new VcsRwVm;
231 "Name of the pool from which to
238 "True if this VM is designated as a leader for
239 the parent collection.";
243 uses rwvcs-event-list;
248 grouping rwvcs-rwproc {
251 "This section defines a RW.VCS
253 //rwpb:msg-new VcsRwproc;
257 "Host OS user that should run this
258 process, requires sudo -E access
259 and non-collapsed processes";
265 "List of tasklets to be run within
268 //rwpb:msg-new RwprocTasklet;
272 "Local description of the tasklet";
276 leaf component-name {
278 "Component name of the tasklet";
285 "If specified, the desired instance-id of
286 tasklet component instance";
292 "Config readiness check enable";
297 leaf recovery-action {
299 "Define recovery action if this component fail";
303 uses rwvcs-variable-list;
309 grouping native-proc {
310 container native-proc {
311 //rwpb:msg-new NativeProc;
315 "Host OS user that should run this
316 process, requires sudo -E access";
322 "Runtime environment for native process";
328 "Path to native process executable";
334 "Arguments to pass to native process";
338 leaf network-namespace {
340 "Namespace to start process in";
346 "Redirect stdout to the file at the
353 "Redirect stderr to the file at the
354 specified path. Optionally, 'stdout'
355 may be used to redirect to the same
361 description "Native process is interactive and needs
369 grouping rwvcs-rwtasklet {
370 container rwtasklet {
372 "This section defines a RW.VCS
373 rwtasklet component";
374 //rwpb:msg-new VcsRwTasklet;
376 leaf plugin-directory {
386 leaf plugin-version {
393 grouping rwvcs-component-list {
396 "This section defines the RIFT.ware
398 key "component-name";
399 //rwpb:application-request-point;
401 leaf component-name {
406 leaf component-type {
413 case rwvcs-rwcollection {
414 uses rwvcs-rwcollection;
425 case rwvcs-rwtasklet {
426 uses rwvcs-rwtasklet;
430 } // grouping rwvcs-component-list