summaryrefslogtreecommitdiffstats
path: root/infra/cfg-init/src/main/yang/vpp-cfg-init.yang
diff options
context:
space:
mode:
Diffstat (limited to 'infra/cfg-init/src/main/yang/vpp-cfg-init.yang')
-rw-r--r--infra/cfg-init/src/main/yang/vpp-cfg-init.yang117
1 files changed, 117 insertions, 0 deletions
diff --git a/infra/cfg-init/src/main/yang/vpp-cfg-init.yang b/infra/cfg-init/src/main/yang/vpp-cfg-init.yang
new file mode 100644
index 000000000..52750d926
--- /dev/null
+++ b/infra/cfg-init/src/main/yang/vpp-cfg-init.yang
@@ -0,0 +1,117 @@
+module vpp-cfg-init {
+ yang-version 1;
+ namespace "urn:honeycomb:params:xml:ns:yang:vpp:data:init";
+ prefix "init";
+
+ import config { prefix config; revision-date 2013-04-05; }
+ import opendaylight-md-sal-dom {prefix dom;}
+ import translate-api { prefix tapi; revision-date 2016-04-06; }
+ import data-api { prefix dapi; revision-date 2016-04-11; }
+
+ description
+ "This module contains initializers for VPP config data tree";
+
+ revision "2016-04-07" {
+ description
+ "Initial revision";
+ }
+
+ identity cfg-initializer {
+ base "config:service-type";
+ config:java-class io.fd.honeycomb.v3po.vpp.data.init.DataTreeInitializer;
+ }
+
+ identity cfg-initializer-registry {
+ base config:module-type;
+ config:provided-service cfg-initializer;
+ config:java-name-prefix ConfigurationInitializerRegistry;
+ description "Initializer registry, delegating initialization to a list of initializers";
+ }
+
+ augment "/config:modules/config:module/config:configuration" {
+ case cfg-initializer-registry {
+ when "/config:modules/config:module/config:type = 'cfg-initializer-registry'";
+
+ list initializers {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity cfg-initializer;
+ }
+ }
+ }
+
+ container persisted-context-initializer {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity cfg-initializer;
+ }
+ }
+ }
+
+ container persisted-config-initializer {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity cfg-initializer;
+ }
+ }
+ }
+ }
+ }
+
+ identity persisted-file-initializer {
+ base config:module-type;
+ config:provided-service cfg-initializer;
+ description "Initializer restoring data from a persisted file";
+ }
+
+ typedef restoration-type {
+ type enumeration {
+ enum merge;
+ enum put;
+ }
+ }
+
+ augment "/config:modules/config:module/config:configuration" {
+ case persisted-file-initializer {
+ when "/config:modules/config:module/config:type = 'persisted-file-initializer'";
+
+ container dom-data-broker {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity dom:dom-async-data-broker;
+ }
+ }
+ }
+
+ container schema-service {
+ uses config:service-ref {
+ refine type {
+ mandatory true;
+ config:required-identity dom:schema-service;
+ }
+ }
+ }
+
+ leaf persist-file-path {
+ type string;
+ mandatory true;
+ }
+
+ leaf restoration-type {
+ type restoration-type;
+ default merge;
+ }
+
+
+ leaf datastore-type {
+ type dapi:datatree-type;
+ mandatory true;
+ }
+ }
+ }
+
+} \ No newline at end of file