diff options
Diffstat (limited to 'infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer')
5 files changed, 0 insertions, 331 deletions
diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java deleted file mode 100644 index e0c38f38b..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerPipelineModule.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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.infra.distro.initializer; - -import com.google.inject.PrivateModule; -import com.google.inject.Singleton; -import com.google.inject.name.Names; -import io.fd.honeycomb.data.ModifiableDataManager; -import io.fd.honeycomb.data.init.InitializerRegistry; -import io.fd.honeycomb.infra.distro.data.BindingDataBrokerProvider; -import io.fd.honeycomb.infra.distro.data.HoneycombDOMDataBrokerProvider; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; - -public final class InitializerPipelineModule extends PrivateModule { - - public static final String HONEYCOMB_INITIALIZER = "honeycomb-initializer"; - - protected void configure() { - // Create data tree manager on top of non-persisting config data tree - bind(ModifiableDataManager.class).toProvider(ModifiableDTDelegInitProvider.class).in(Singleton.class); - // Wrap as DOMDataBroker - bind(DOMDataBroker.class).toProvider(HoneycombDOMDataBrokerProvider.class).in(Singleton.class); - // Wrap as BA data broker - bind(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER)) - .toProvider(BindingDataBrokerProvider.class).in(Singleton.class); - expose(DataBroker.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER)); - - // Create initializer registry so that plugins can provide their initializers - bind(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER)) - .toProvider(InitializerRegistryAdapterProvider.class).in(Singleton.class); - expose(InitializerRegistry.class).annotatedWith(Names.named(HONEYCOMB_INITIALIZER)); - } -} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java deleted file mode 100644 index 85fb7772c..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapter.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * 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.infra.distro.initializer; - -import io.fd.honeycomb.data.init.DataTreeInitializer; -import io.fd.honeycomb.data.init.InitializerRegistry; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.ModificationCache; -import io.fd.honeycomb.translate.read.ReadContext; -import io.fd.honeycomb.translate.read.registry.InitRegistry; -import javax.annotation.Nonnull; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -final class InitializerRegistryAdapter implements InitializerRegistry { - - private static final Logger LOG = LoggerFactory.getLogger(InitializerRegistryAdapter.class); - - private final DataTreeInitializer configInitializer; - private final DataTreeInitializer contextInitializer; - private final InitRegistry initRegistry; - private final DataBroker dataBroker; - private final MappingContext realtimeMappingContext; - - InitializerRegistryAdapter(final DataTreeInitializer configInitializer, - final DataTreeInitializer contextInitializer, - final InitRegistry initRegistry, - final DataBroker noopConfigDataBroker, - final MappingContext realtimeMappingContext) { - this.configInitializer = configInitializer; - this.contextInitializer = contextInitializer; - this.initRegistry = initRegistry; - this.dataBroker = noopConfigDataBroker; - this.realtimeMappingContext = realtimeMappingContext; - } - - @Override - public void initialize() throws DataTreeInitializer.InitializeException { - LOG.info("Config initialization started"); - - try { - // Initialize contexts first so that other initializers can find any relevant mapping before initializing - // configuration to what is already in VPP - contextInitializer.initialize(); - LOG.info("Persisted context restored successfully"); - // Initialize all registered initializers - initRegistry.initAll(dataBroker, new InitReadContext(realtimeMappingContext)); - LOG.info("Configuration initialized successfully"); - // Initialize stored configuration on top - configInitializer.initialize(); - LOG.info("Persisted configuration restored successfully"); - } catch (Exception e) { - LOG.warn("Failed to initialize config", e); - } - - LOG.info("Honeycomb initialized"); - } - - private static final class InitReadContext implements ReadContext { - - private final ModificationCache modificationCache; - private final MappingContext realtimeMappingContext; - - InitReadContext(final MappingContext realtimeMappingContext) { - modificationCache = new ModificationCache(); - this.realtimeMappingContext = realtimeMappingContext; - } - - @Nonnull - @Override - public ModificationCache getModificationCache() { - return modificationCache; - } - - @Nonnull - @Override - public MappingContext getMappingContext() { - return realtimeMappingContext; - } - - @Override - public void close() { - modificationCache.close(); - } - } -} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java deleted file mode 100644 index f66284b19..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/InitializerRegistryAdapterProvider.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.infra.distro.initializer; - -import static io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule.HONEYCOMB_CONTEXT; -import static io.fd.honeycomb.infra.distro.initializer.InitializerPipelineModule.HONEYCOMB_INITIALIZER; - -import com.google.inject.Inject; -import com.google.inject.name.Named; -import io.fd.honeycomb.data.init.DataTreeInitializer; -import io.fd.honeycomb.data.init.InitializerRegistry; -import io.fd.honeycomb.infra.distro.ProviderTrait; -import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule; -import io.fd.honeycomb.translate.MappingContext; -import io.fd.honeycomb.translate.read.registry.ReaderRegistry; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; - -public final class InitializerRegistryAdapterProvider extends ProviderTrait<InitializerRegistry> { - - @Inject - @Named(HONEYCOMB_CONTEXT) - private DataTreeInitializer contextInitializer; - @Inject - @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG) - private DataTreeInitializer configInitializer; - @Inject - private ReaderRegistry initRegistry; - @Inject - @Named(HONEYCOMB_INITIALIZER) - private DataBroker noopConfigDataBroker; - @Inject - @Named(HONEYCOMB_CONTEXT) - private MappingContext realtimeMappingContext; - - @Override - protected InitializerRegistryAdapter create() { - return new InitializerRegistryAdapter(configInitializer, contextInitializer, initRegistry, - noopConfigDataBroker, realtimeMappingContext); - } -} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java deleted file mode 100644 index 3579ff11d..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/ModifiableDTDelegInitProvider.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.infra.distro.initializer; - -import com.google.inject.Inject; -import com.google.inject.name.Named; -import io.fd.honeycomb.data.ModifiableDataManager; -import io.fd.honeycomb.data.impl.ModifiableDataTreeDelegator; -import io.fd.honeycomb.infra.distro.ProviderTrait; -import io.fd.honeycomb.infra.distro.data.ConfigAndOperationalPipelineModule; -import io.fd.honeycomb.infra.distro.data.context.ContextPipelineModule; -import io.fd.honeycomb.translate.util.write.NoopWriterRegistry; -import org.opendaylight.controller.md.sal.binding.api.DataBroker; -import org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec; -import org.opendaylight.controller.sal.core.api.model.SchemaService; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; - -public final class ModifiableDTDelegInitProvider extends ProviderTrait<ModifiableDataManager> { - - @Inject - private BindingToNormalizedNodeCodec serializer; - @Inject - @Named(ConfigAndOperationalPipelineModule.HONEYCOMB_CONFIG_NONPERSIST) - private DataTree dataTree; - @Inject - @Named(ContextPipelineModule.HONEYCOMB_CONTEXT) - private DataBroker contextBroker; - @Inject - private SchemaService schemaService; - - @Override - public ModifiableDataTreeDelegator create() { - return new ModifiableDataTreeDelegator(serializer, dataTree, schemaService.getGlobalContext(), - new NoopWriterRegistry(), contextBroker); - } -} diff --git a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java b/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java deleted file mode 100644 index 58d63cfb3..000000000 --- a/infra/minimal-distribution/src/main/java/io/fd/honeycomb/infra/distro/initializer/PersistedFileInitializerProvider.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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.infra.distro.initializer; - -import com.google.inject.Inject; -import io.fd.honeycomb.data.init.RestoringInitializer; -import io.fd.honeycomb.infra.distro.ProviderTrait; -import io.fd.honeycomb.infra.distro.cfgattrs.HoneycombConfiguration; -import java.nio.file.Paths; -import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; -import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; -import org.opendaylight.controller.sal.core.api.model.SchemaService; - -public abstract class PersistedFileInitializerProvider extends ProviderTrait<RestoringInitializer> { - - @Inject - private SchemaService schemaService; - @Inject - protected HoneycombConfiguration cfgAttributes; - @Inject - private DOMDataBroker domDataBroker; - - @Override - public RestoringInitializer create() { - return new RestoringInitializer(schemaService, Paths.get(getPersistPath()), domDataBroker, - RestoringInitializer.RestorationType.valueOf(getRestorationType()), getDataStoreType()); - } - - public abstract String getPersistPath(); - - public abstract LogicalDatastoreType getDataStoreType(); - - public abstract String getRestorationType(); - - public static class PersistedContextInitializerProvider extends PersistedFileInitializerProvider { - public String getPersistPath() { - return cfgAttributes.peristContextPath; - } - - public LogicalDatastoreType getDataStoreType() { - return LogicalDatastoreType.OPERATIONAL; - } - - public String getRestorationType() { - return cfgAttributes.persistedContextRestorationType; - } - - } - - public static class PersistedConfigInitializerProvider extends PersistedFileInitializerProvider { - public String getPersistPath() { - return cfgAttributes.peristConfigPath; - } - - public LogicalDatastoreType getDataStoreType() { - return LogicalDatastoreType.CONFIGURATION; - } - - public String getRestorationType() { - return cfgAttributes.persistedConfigRestorationType; - } - - } -} |