diff options
Diffstat (limited to 'infra/cfg-init/src')
7 files changed, 24 insertions, 237 deletions
diff --git a/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestorationType.java b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestorationType.java new file mode 100644 index 000000000..51b1d8bbe --- /dev/null +++ b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestorationType.java @@ -0,0 +1,24 @@ +/* + * 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. + */ + +package io.fd.honeycomb.data.init; + +/** + * Type of operation to use when writing restored data + */ +public enum RestorationType { + Put, Merge +} diff --git a/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestoringInitializer.java b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestoringInitializer.java index 54c3df787..2f3f7c99e 100644 --- a/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestoringInitializer.java +++ b/infra/cfg-init/src/main/java/io/fd/honeycomb/data/init/RestoringInitializer.java @@ -29,7 +29,6 @@ import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFaile import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.sal.core.api.model.SchemaService; -import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407.RestorationType; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; diff --git a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModule.java b/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModule.java deleted file mode 100644 index 3a90c5303..000000000 --- a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModule.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407; - -import io.fd.honeycomb.data.init.InitializerRegistry; -import io.fd.honeycomb.data.init.InitializerRegistryImpl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** -* Initializer registry, delegating initialization to a list of initializers -*/ -public class ConfigurationInitializerRegistryModule extends AbstractConfigurationInitializerRegistryModule { - - private static final Logger LOG = LoggerFactory.getLogger(ConfigurationInitializerRegistryModule.class); - - public ConfigurationInitializerRegistryModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(identifier, dependencyResolver); - } - - public ConfigurationInitializerRegistryModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, ConfigurationInitializerRegistryModule oldModule, java.lang.AutoCloseable oldInstance) { - super(identifier, dependencyResolver, oldModule, oldInstance); - } - - @Override - public void customValidation() { - // add custom validation form module attributes here. - } - - @Override - public java.lang.AutoCloseable createInstance() { - LOG.info("Config initialization started"); - - final InitializerRegistry initializer = new InitializerRegistryImpl(getInitializersDependency()); - - try { - // Initialize contexts first so that other initializers can find any relevant mapping before initializing - // configuration to what is already in VPP - getPersistedContextInitializerDependency().initialize(); - LOG.info("Persisted context restored successfully"); - // Initialize all registered initializers - initializer.initialize(); - LOG.info("Configuration initialized successfully"); - // Initialize stored configuration on top - getPersistedConfigInitializerDependency().initialize(); - LOG.info("Persisted configuration restored successfully"); - } catch (Exception e) { - LOG.warn("Failed to initialize config", e); - } - - LOG.info("Honeycomb initialized"); - - return initializer; - } - -} diff --git a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModuleFactory.java b/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModuleFactory.java deleted file mode 100644 index 461c1f01b..000000000 --- a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/ConfigurationInitializerRegistryModuleFactory.java +++ /dev/null @@ -1,14 +0,0 @@ -/* -* Generated file -* -* Generated from: yang module name: vpp-cfg-init yang module local name: cfg-initializer-registry -* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator -* Generated at: Wed May 18 14:43:49 CEST 2016 -* -* Do not modify this file unless it is present under src/main directory -*/ -package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407; -public class ConfigurationInitializerRegistryModuleFactory extends - AbstractConfigurationInitializerRegistryModuleFactory { - -} diff --git a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModule.java b/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModule.java deleted file mode 100644 index b57ded9fc..000000000 --- a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModule.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407; - -import io.fd.honeycomb.data.init.RestoringInitializer; -import java.nio.file.InvalidPathException; -import java.nio.file.Paths; -import org.opendaylight.controller.config.api.JmxAttributeValidationException; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.api.rev160411.DatatreeType; - -/** -* Initializer restoring data from a persisted file -*/ -public class PersistedFileInitializerModule extends AbstractPersistedFileInitializerModule { - public PersistedFileInitializerModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { - super(identifier, dependencyResolver); - } - - public PersistedFileInitializerModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, PersistedFileInitializerModule oldModule, java.lang.AutoCloseable oldInstance) { - super(identifier, dependencyResolver, oldModule, oldInstance); - } - - @Override - public void customValidation() { - try { - Paths.get(getPersistFilePath()); - } catch (InvalidPathException e) { - throw new JmxAttributeValidationException("Invalid persist path", e, persistFilePathJmxAttribute); - } - } - - @Override - public java.lang.AutoCloseable createInstance() { - return new RestoringInitializer(getSchemaServiceDependency(), Paths.get(getPersistFilePath()), - getDomDataBrokerDependency(), getRestorationType(), - getDatastoreType() == DatatreeType.Config ? LogicalDatastoreType.CONFIGURATION : LogicalDatastoreType.OPERATIONAL); - } - -} diff --git a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModuleFactory.java b/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModuleFactory.java deleted file mode 100644 index 7e703d558..000000000 --- a/infra/cfg-init/src/main/java/org/opendaylight/yang/gen/v1/urn/honeycomb/params/xml/ns/yang/data/init/rev160407/PersistedFileInitializerModuleFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -/* -* Generated file -* -* Generated from: yang module name: vpp-cfg-init yang module local name: persisted-file-initializer -* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator -* Generated at: Wed May 18 13:48:52 CEST 2016 -* -* Do not modify this file unless it is present under src/main directory -*/ -package org.opendaylight.yang.gen.v1.urn.honeycomb.params.xml.ns.yang.data.init.rev160407; -public class PersistedFileInitializerModuleFactory extends AbstractPersistedFileInitializerModuleFactory { - -} diff --git a/infra/cfg-init/src/main/yang/cfg-init.yang b/infra/cfg-init/src/main/yang/cfg-init.yang deleted file mode 100644 index 8b1a4d9d1..000000000 --- a/infra/cfg-init/src/main/yang/cfg-init.yang +++ /dev/null @@ -1,117 +0,0 @@ -module cfg-init { - yang-version 1; - namespace "urn:honeycomb:params:xml:ns:yang: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 config data tree"; - - revision "2016-04-07" { - description - "Initial revision"; - } - - identity cfg-initializer { - base "config:service-type"; - config:java-class io.fd.honeycomb.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 |