diff options
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.yang | 117 |
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 |