From cd89e554b44b42a73a85122f6bf1c592cbda8664 Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Thu, 19 May 2016 14:57:33 +0200 Subject: [PATCH] Introducing VPP renderer Initial yang for vpp renderer Change-Id: I60ab30fa6cc471134271b02282987e05aa1b46c6 Signed-off-by: Michal Cmarada --- artifacts/pom.xml | 12 ++++ features/pom.xml | 10 ++++ features/src/main/features/features.xml | 9 +++ renderers/pom.xml | 1 + renderers/vpp/pom.xml | 59 +++++++++++++++++++ .../vpp/src/main/config/default-config.xml | 30 ++++++++++ .../vpp_provider/impl/VppProviderModule.java | 46 +++++++++++++++ .../impl/VppProviderModuleFactory.java | 20 +++++++ .../config/vpp_provider/impl/VppRenderer.java | 34 +++++++++++ .../vpp/src/main/yang/vpp-provider-impl.yang | 51 ++++++++++++++++ 10 files changed, 272 insertions(+) create mode 100644 renderers/vpp/pom.xml create mode 100644 renderers/vpp/src/main/config/default-config.xml create mode 100644 renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModule.java create mode 100644 renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModuleFactory.java create mode 100644 renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java create mode 100644 renderers/vpp/src/main/yang/vpp-provider-impl.yang diff --git a/artifacts/pom.xml b/artifacts/pom.xml index 6eef12e7d..f9fd8aa7f 100755 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -51,6 +51,11 @@ ne-location-provider ${project.version} + + ${project.groupId} + vpp-renderer + ${project.version} + ${project.groupId} neutron-mapper @@ -132,6 +137,13 @@ xml config + + ${project.groupId} + vpp-renderer + ${project.version} + xml + config + ${project.groupId} neutron-mapper diff --git a/features/pom.xml b/features/pom.xml index 12389e640..77089623e 100755 --- a/features/pom.xml +++ b/features/pom.xml @@ -257,6 +257,10 @@ org.opendaylight.groupbasedpolicy ne-location-provider + + org.opendaylight.groupbasedpolicy + vpp-renderer + org.opendaylight.groupbasedpolicy neutron-mapper @@ -325,6 +329,12 @@ xml config + + org.opendaylight.groupbasedpolicy + vpp-renderer + xml + config + org.opendaylight.groupbasedpolicy neutron-mapper diff --git a/features/src/main/features/features.xml b/features/src/main/features/features.xml index 046346d82..2b385da76 100755 --- a/features/src/main/features/features.xml +++ b/features/src/main/features/features.xml @@ -147,6 +147,15 @@ mvn:org.opendaylight.groupbasedpolicy/neutron-ovsdb/{{VERSION}}/xml/config + + + odl-groupbasedpolicy-base + mvn:org.opendaylight.groupbasedpolicy/vpp-renderer/{{VERSION}} + mvn:org.opendaylight.groupbasedpolicy/vpp-renderer/{{VERSION}}/xml/config + + diff --git a/renderers/pom.xml b/renderers/pom.xml index cedd26180..1a39df73b 100644 --- a/renderers/pom.xml +++ b/renderers/pom.xml @@ -25,6 +25,7 @@ iovisor ovssfc netconf + vpp diff --git a/renderers/vpp/pom.xml b/renderers/vpp/pom.xml new file mode 100644 index 000000000..0da97aaec --- /dev/null +++ b/renderers/vpp/pom.xml @@ -0,0 +1,59 @@ + + + + 4.0.0 + + + org.opendaylight.groupbasedpolicy + groupbasedpolicy-renderers + 0.4.0-SNAPSHOT + ../ + + + vpp-renderer + bundle + + + + + + + + + junit + junit + test + + + org.mockito + mockito-all + test + + + + + + + + + org.apache.felix + maven-bundle-plugin + true + + + + org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.vpp.input.rev160425.* + --> + + + + + + diff --git a/renderers/vpp/src/main/config/default-config.xml b/renderers/vpp/src/main/config/default-config.xml new file mode 100644 index 000000000..baff11b49 --- /dev/null +++ b/renderers/vpp/src/main/config/default-config.xml @@ -0,0 +1,30 @@ + + + + + + + + + vpp-provider-impl + + vpp:vpp-provider-impl + + + binding:binding-async-data-broker + binding-data-broker + + + + + + + urn:opendaylight:params:xml:ns:yang:controller:config:vpp-provider:impl?module=vpp-provider-impl&revision=2016-04-25 + + diff --git a/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModule.java b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModule.java new file mode 100644 index 000000000..3d2f7d090 --- /dev/null +++ b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModule.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.config.yang.config.vpp_provider.impl; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class VppProviderModule extends org.opendaylight.controller.config.yang.config.vpp_provider.impl.AbstractVppProviderModule { + + private static final Logger LOG = LoggerFactory.getLogger(VppProviderModule.class); + + public VppProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver) { + super(identifier, dependencyResolver); + } + + public VppProviderModule(org.opendaylight.controller.config.api.ModuleIdentifier identifier, org.opendaylight.controller.config.api.DependencyResolver dependencyResolver, org.opendaylight.controller.config.yang.config.vpp_provider.impl.VppProviderModule 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() { + final VppRenderer vppRenderer = new VppRenderer(getDataBrokerDependency()); + + LOG.info("VPP Renderer instance has been created"); + + return new AutoCloseable() { + + @Override + public void close() throws Exception { + vppRenderer.close(); + } + }; + } + +} diff --git a/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModuleFactory.java b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModuleFactory.java new file mode 100644 index 000000000..3e4028c69 --- /dev/null +++ b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppProviderModuleFactory.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +/* +* Generated file +* +* Generated from: yang module name: vpp-provider-impl yang module local name: vpp-provider-impl +* Generated by: org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator +* Generated at: Thu May 05 09:46:48 CEST 2016 +* +* Do not modify this file unless it is present under src/main directory +*/ +package org.opendaylight.controller.config.yang.config.vpp_provider.impl; +public class VppProviderModuleFactory extends org.opendaylight.controller.config.yang.config.vpp_provider.impl.AbstractVppProviderModuleFactory { + +} diff --git a/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java new file mode 100644 index 000000000..f3885f2d3 --- /dev/null +++ b/renderers/vpp/src/main/java/org/opendaylight/controller/config/yang/config/vpp_provider/impl/VppRenderer.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +package org.opendaylight.controller.config.yang.config.vpp_provider.impl; + +import com.google.common.base.Preconditions; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class VppRenderer implements AutoCloseable { + private static final Logger LOG = LoggerFactory.getLogger(VppRenderer.class); + + private DataBroker dataBroker; + + public VppRenderer(DataBroker dataBroker) { + Preconditions.checkNotNull(dataBroker); + + this.dataBroker = dataBroker; + + LOG.info("VPP Renderer has Started"); + } + + @Override + public void close() throws Exception { + this.dataBroker = null; + } + +} diff --git a/renderers/vpp/src/main/yang/vpp-provider-impl.yang b/renderers/vpp/src/main/yang/vpp-provider-impl.yang new file mode 100644 index 000000000..b70d8c97c --- /dev/null +++ b/renderers/vpp/src/main/yang/vpp-provider-impl.yang @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ + +module vpp-provider-impl { + yang-version 1; + namespace "urn:opendaylight:params:xml:ns:yang:controller:config:vpp-provider:impl"; + prefix "vpp-provider-impl"; + + import config { prefix config; revision-date 2013-04-05; } + import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; } + import ietf-yang-types { prefix "yang"; revision-date 2010-09-24; } + import opendaylight-sal-binding-broker-impl { prefix sal-broker; revision-date 2013-10-28;} + import groupbasedpolicy-cfg { prefix gbpcfg; revision-date 2015-11-06; } + + description + "This module contains the base YANG definitions for + vpp-provider impl implementation."; + + revision "2016-04-25" { + description + "Initial revision."; + } + + identity vpp-provider-impl { + base "config:module-type"; + + config:java-name-prefix VppProvider; + } + + // Augments the 'configuration' choice node under modules/module. + augment "/config:modules/config:module/config:configuration" { + case vpp-provider-impl { + when "/config:modules/config:module/config:type = 'vpp-provider-impl'"; + + // Wires in the data-broker service + container data-broker { + uses config:service-ref { + refine type { + mandatory true; + config:required-identity mdsal:binding-async-data-broker; + } + } + } + } + } +} -- 2.36.6