diff options
author | Maros Marsalek <mmarsale@cisco.com> | 2016-05-18 15:05:51 +0200 |
---|---|---|
committer | Maros Marsalek <mmarsale@cisco.com> | 2016-05-24 08:36:34 +0000 |
commit | ee1202f9cb83b2b9bcf6ae3f8704bbf0f39b77a5 (patch) | |
tree | d3bcb31ef2138c90445199b3709802206c5e2cdc /v3po/impl | |
parent | 5e1e4256dbd294cf2ccc3b0ad2435b403a420214 (diff) |
HONEYCOMB-61: Restore configuration and context from persisted files
Change-Id: I6edce127f8895f5d65998b4be71a0a111ca2e8bb
Signed-off-by: Maros Marsalek <mmarsale@cisco.com>
Diffstat (limited to 'v3po/impl')
-rw-r--r-- | v3po/impl/pom.xml | 5 | ||||
-rw-r--r-- | v3po/impl/src/main/config/default-config.xml | 120 | ||||
-rw-r--r-- | v3po/impl/src/main/config/initializer-config.xml | 224 |
3 files changed, 229 insertions, 120 deletions
diff --git a/v3po/impl/pom.xml b/v3po/impl/pom.xml index 6db420bef..6f4f4e172 100644 --- a/v3po/impl/pom.xml +++ b/v3po/impl/pom.xml @@ -111,6 +111,11 @@ <classifier>netconf</classifier> </artifact> <artifact> + <file>src/main/config/initializer-config.xml</file> + <type>xml</type> + <classifier>init</classifier> + </artifact> + <artifact> <file>src/main/config/context-datatree-config.xml</file> <type>xml</type> <classifier>context</classifier> diff --git a/v3po/impl/src/main/config/default-config.xml b/v3po/impl/src/main/config/default-config.xml index 7106c78ce..961ca72c0 100644 --- a/v3po/impl/src/main/config/default-config.xml +++ b/v3po/impl/src/main/config/default-config.xml @@ -19,7 +19,6 @@ <capability>urn:opendaylight:params:xml:ns:yang:v3po:impl?module=v3po-impl&revision=2014-12-10</capability> <capability>urn:honeycomb:params:xml:ns:yang:translate:utils?module=translate-utils&revision=2016-04-06</capability> <capability>urn:honeycomb:params:xml:ns:yang:vpp:jvpp:cfg?module=vpp-jvpp-cfg&revision=2016-04-06</capability> - <capability>urn:honeycomb:params:xml:ns:yang:vpp:data:init?module=vpp-cfg-init&revision=2016-04-07</capability> <capability>urn:honeycomb:params:xml:ns:yang:data:api?module=data-api&revision=2016-04-11</capability> <capability>urn:honeycomb:params:xml:ns:yang:data:impl?module=data-impl&revision=2016-04-11</capability> <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&revision=2013-10-28</capability> @@ -209,85 +208,6 @@ <name>honeycomb-dom-data-broker</name> </honeycomb-dom-data-broker> </module> - - <!-- Config initialization --> - <!-- Empty registry which does not pass data to VPP --> - <module> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:utils">prefix:noop-writer-registry</type> - <name>noop-writer-registry</name> - </module> - <!-- Config data tree which does not pass data to translation layer (uses noop-write-registry) --> - <module> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-config-data-tree</type> - <name>cfg-init-config-data-tree</name> - - <!--FIXME do we need/want persistence here ? Do initializers only merge the data ? --> - <!-- Without persistence --> - <!--<data-tree>--> - <!--<type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:data-tree</type>--> - <!--<name>inmemory-config-data-tree</name>--> - <!--</data-tree>--> - <!-- With persistence --> - <data-tree> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:data-tree</type> - <name>inmemory-persisted-config-data-tree</name> - </data-tree> - - <serializer> - <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type> - <name>runtime-mapping-singleton</name> - </serializer> - <writer-registry> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type> - <name>noop-writer-registry</name> - </writer-registry> - <context-binding-broker> - <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type> - <name>honeycomb-context-binding-data-broker</name> - </context-binding-broker> - </module> - <!-- DOM data broker for config initialization --> - <module> - <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:v3po:impl">prefix:honeycomb-dom-data-broker</type> - <name>cfg-init-dom-data-broker</name> - <config-data-tree> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type> - <name>cfg-init-config-data-tree</name> - </config-data-tree> - <operational-data-tree> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-readable-data-tree</type> - <name>operational-data-tree</name> - </operational-data-tree> - </module> - <!-- Binding data broker for config initialization --> - <module> - <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type> - <name>cfg-init-binding-data-broker</name> - <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl"> - <dom-async-broker> - <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type> - <name>cfg-init-dom-data-broker</name> - </dom-async-broker> - <schema-service> - <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type> - <name>yang-schema-service</name> - </schema-service> - <binding-mapping-service> - <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type> - <name>runtime-mapping-singleton</name> - </binding-mapping-service> - </binding-forwarded-data-broker> - </module> - <!-- Config initializer --> - <module> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer-impl</type> - <name>vpp-cfg-initializer</name> - <binding-data-broker> - <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-async-data-broker</type> - <name>cfg-init-binding-data-broker</name> - </binding-data-broker> - </module>noop-writer-registry - <!-- END: Config initialization --> </modules> <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> @@ -388,46 +308,6 @@ </instance> </service> - <!-- Config initialization --> - <service> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type> - <instance> - <name>noop-writer-registry</name> - <provider>/modules/module[type='noop-writer-registry'][name='noop-writer-registry']</provider> - </instance> - </service> - <service> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type> - <instance> - <name>cfg-init-config-data-tree</name> - <provider>/modules/module[type='honeycomb-config-data-tree'][name='cfg-init-config-data-tree'] - </provider> - </instance> - </service> - <service> - <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type> - <instance> - <name>cfg-init-dom-data-broker</name> - <provider>/modules/module[type='honeycomb-dom-data-broker'][name='cfg-init-dom-data-broker']</provider> - </instance> - </service> - <service> - <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type> - <instance> - <name>cfg-init-binding-data-broker</name> - <provider>/modules/module[type='binding-forwarded-data-broker'][name='cfg-init-binding-data-broker']</provider> - </instance> - </service> - <service> - <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer</type> - <instance> - <name>vpp-cfg-initializer</name> - <provider>/modules/module[type='vpp-cfg-initializer-impl'][name='vpp-cfg-initializer'] - </provider> - </instance> - </service> - <!-- END: Config initialization --> - </services> </data> </configuration> diff --git a/v3po/impl/src/main/config/initializer-config.xml b/v3po/impl/src/main/config/initializer-config.xml new file mode 100644 index 000000000..c5ee10f91 --- /dev/null +++ b/v3po/impl/src/main/config/initializer-config.xml @@ -0,0 +1,224 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright (c) 2016 Cisco and/or its affiliates. + ~ + ~ Licensed under the Apache License, Version 2.0 (the "License"); + ~ you may not use this file except in compliance with the License. + ~ You may obtain a copy of the License at: + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +<!-- vi: set et smarttab sw=4 tabstop=4: --> + +<snapshot> + <required-capabilities> + <capability>urn:opendaylight:params:xml:ns:yang:v3po:impl?module=v3po-impl&revision=2014-12-10</capability> + <capability>urn:honeycomb:params:xml:ns:yang:translate:utils?module=translate-utils&revision=2016-04-06</capability> + <capability>urn:honeycomb:params:xml:ns:yang:vpp:jvpp:cfg?module=vpp-jvpp-cfg&revision=2016-04-06</capability> + <capability>urn:honeycomb:params:xml:ns:yang:vpp:data:init?module=vpp-cfg-init&revision=2016-04-07</capability> + <capability>urn:honeycomb:params:xml:ns:yang:data:api?module=data-api&revision=2016-04-11</capability> + <capability>urn:honeycomb:params:xml:ns:yang:data:impl?module=data-impl&revision=2016-04-11</capability> + <capability>urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding?module=opendaylight-md-sal-binding&revision=2013-10-28</capability> + </required-capabilities> + <configuration> + + <data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> + <modules xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> + <!-- Config initialization --> + <!-- Empty registry which does not pass data to VPP --> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:utils">prefix:noop-writer-registry</type> + <name>noop-writer-registry</name> + </module> + <!-- Config data tree which does not pass data to translation layer (uses noop-write-registry) --> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:impl">prefix:honeycomb-config-data-tree</type> + <name>cfg-init-config-data-tree</name> + <!-- Without persistence --> + <data-tree> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:data-tree</type> + <name>inmemory-config-data-tree</name> + </data-tree> + <serializer> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-dom-mapping-service</type> + <name>runtime-mapping-singleton</name> + </serializer> + <writer-registry> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type> + <name>noop-writer-registry</name> + </writer-registry> + <context-binding-broker> + <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type> + <name>honeycomb-context-binding-data-broker</name> + </context-binding-broker> + </module> + <!-- DOM data broker for config initialization --> + <module> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:v3po:impl">prefix:honeycomb-dom-data-broker</type> + <name>cfg-init-dom-data-broker</name> + <config-data-tree> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type> + <name>cfg-init-config-data-tree</name> + </config-data-tree> + <operational-data-tree> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-readable-data-tree</type> + <name>operational-data-tree</name> + </operational-data-tree> + </module> + <!-- Binding data broker for config initialization --> + <module> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">prefix:binding-forwarded-data-broker</type> + <name>cfg-init-binding-data-broker</name> + <binding-forwarded-data-broker xmlns="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl"> + <dom-async-broker> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type> + <name>cfg-init-dom-data-broker</name> + </dom-async-broker> + <schema-service> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type> + <name>yang-schema-service</name> + </schema-service> + <binding-mapping-service> + <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl">binding:binding-dom-mapping-service</type> + <name>runtime-mapping-singleton</name> + </binding-mapping-service> + </binding-forwarded-data-broker> + </module> + <!-- Config initializer for VPP subtree--> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:vpp-cfg-initializer</type> + <name>vpp-cfg-initializer</name> + <binding-data-broker> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-async-data-broker</type> + <name>cfg-init-binding-data-broker</name> + </binding-data-broker> + </module> + <!-- Config initializer for Interfaces subtree--> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:interfaces-cfg-initializer</type> + <name>interfaces-cfg-initializer</name> + <binding-data-broker> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">prefix:binding-async-data-broker</type> + <name>cfg-init-binding-data-broker</name> + </binding-data-broker> + </module> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:persisted-file-initializer</type> + <name>persisted-context-initializer</name> + <dom-data-broker> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type> + <name>honeycomb-context-data-broker</name> + </dom-data-broker> + <schema-service> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type> + <name>yang-schema-service</name> + </schema-service> + <persist-file-path>etc/opendaylight/honeycomb/context.json</persist-file-path> + <restoration-type>merge</restoration-type> + <datastore-type>oper</datastore-type> + </module> + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:persisted-file-initializer</type> + <name>persisted-config-initializer</name> + <dom-data-broker> + <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">prefix:dom-async-data-broker</type> + <name>honeycomb-dom-data-broker</name> + </dom-data-broker> + <schema-service> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:schema-service</type> + <name>yang-schema-service</name> + </schema-service> + <persist-file-path>etc/opendaylight/honeycomb/config.json</persist-file-path> + <restoration-type>merge</restoration-type> + <datastore-type>config</datastore-type> + </module> + + <module> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer-registry</type> + <name>initializer-registry</name> + <persisted-context-initializer> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer</type> + <name>persisted-context-initializer</name> + </persisted-context-initializer> + <initializers> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer</type> + <name>vpp-cfg-initializer</name> + </initializers> + <initializers> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer</type> + <name>interfaces-cfg-initializer</name> + </initializers> + <persisted-config-initializer> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer</type> + <name>persisted-config-initializer</name> + </persisted-config-initializer> + </module> + <!-- END: Config initialization --> + </modules> + + <services xmlns="urn:opendaylight:params:xml:ns:yang:controller:config"> + <!-- Config initialization --> + <service> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:translate:api">prefix:honeycomb-writer-registry</type> + <instance> + <name>noop-writer-registry</name> + <provider>/modules/module[type='noop-writer-registry'][name='noop-writer-registry']</provider> + </instance> + </service> + <service> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:data:api">prefix:honeycomb-modifiable-data-tree</type> + <instance> + <name>cfg-init-config-data-tree</name> + <provider>/modules/module[type='honeycomb-config-data-tree'][name='cfg-init-config-data-tree'] + </provider> + </instance> + </service> + <service> + <type xmlns:dom="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">dom:dom-async-data-broker</type> + <instance> + <name>cfg-init-dom-data-broker</name> + <provider>/modules/module[type='honeycomb-dom-data-broker'][name='cfg-init-dom-data-broker']</provider> + </instance> + </service> + <service> + <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-async-data-broker</type> + <instance> + <name>cfg-init-binding-data-broker</name> + <provider>/modules/module[type='binding-forwarded-data-broker'][name='cfg-init-binding-data-broker']</provider> + </instance> + </service> + + <service> + <type xmlns:prefix="urn:honeycomb:params:xml:ns:yang:vpp:data:init">prefix:cfg-initializer</type> + <instance> + <name>vpp-cfg-initializer</name> + <provider>/modules/module[type='vpp-cfg-initializer'][name='vpp-cfg-initializer'] + </provider> + </instance> + <instance> + <name>interfaces-cfg-initializer</name> + <provider>/modules/module[type='interfaces-cfg-initializer'][name='interfaces-cfg-initializer'] + </provider> + </instance> + <instance> + <name>persisted-context-initializer</name> + <provider>/modules/module[type='persisted-file-initializer'][name='persisted-context-initializer'] + </provider> + </instance> + <instance> + <name>persisted-config-initializer</name> + <provider>/modules/module[type='persisted-file-initializer'][name='persisted-config-initializer'] + </provider> + </instance> + </service> + </services> + </data> + </configuration> +</snapshot> |