aboutsummaryrefslogtreecommitdiffstats
path: root/vnfs/honeycomb_plugin/sample_plugin
diff options
context:
space:
mode:
authorMarco Platania <platania@research.att.com>2019-05-08 13:49:41 -0400
committerMarco Platania <platania@research.att.com>2019-05-08 13:49:41 -0400
commitf4db92493f1bd94184d23e1771a8f600202391a6 (patch)
tree7dc7ae2f56a9a7b49800154b7b1e4e0a2450afcd /vnfs/honeycomb_plugin/sample_plugin
parent3e4c0d93034e07a93d881ef13db3e5f2e2f9f3ba (diff)
Remove unused stuff from demo repository
Change-Id: Icc2b2b74a3db494ecc9cf596eb70eea15a447af9 Issue-ID: INT-1073 Signed-off-by: Marco Platania <platania@research.att.com>
Diffstat (limited to 'vnfs/honeycomb_plugin/sample_plugin')
-rw-r--r--vnfs/honeycomb_plugin/sample_plugin/LICENSE.TXT22
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/README.md16
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/pom.xml81
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/yang/sample-plugin.yang77
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/Readme.adoc3
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/pom.xml112
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/Module.java71
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/ModuleConfiguration.java46
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/init/ConfigDataInitializer.java50
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/notif/SampleNotificationProducer.java86
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/ModuleWriterFactory.java63
-rwxr-xr-xvnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/PgWriteCustomizer.java155
12 files changed, 0 insertions, 782 deletions
diff --git a/vnfs/honeycomb_plugin/sample_plugin/LICENSE.TXT b/vnfs/honeycomb_plugin/sample_plugin/LICENSE.TXT
deleted file mode 100644
index 16285cd2..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/LICENSE.TXT
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * ============LICENSE_START==========================================
- * ===================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ===================================================================
- * Unless otherwise specified, all software contained herein is
- * 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.
- * ============LICENSE_END============================================
- *
- * ECOMP is trademark and service mark of AT&T Intellectual Property.
- *
- */
diff --git a/vnfs/honeycomb_plugin/sample_plugin/README.md b/vnfs/honeycomb_plugin/sample_plugin/README.md
deleted file mode 100755
index 2719e64f..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# Honeycomb plugin for VPP's packet generator plugin
-
-This plugin provides REST API to enable/disable streams on the VPP's packet generator.
-
-
-Buid instructions:
-
-From the sample_pluging folder execute: mvn -s settings.xml clean install.
-
-
-Run instruction:
-
-From the sample_pluging folder execute: ./sample-distribution/target/sample-distribution-1.0.0-hc/sample-distribution-1.0.0/honeycomb
-
-
-In order to allow access to REST API from an external machine, modify the "restconf-binding-address" parameter in sample-distribution/target/sample-distribution-1.0.0-hc/sample-distribution-1.0.0/config/honeycomb.json
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/pom.xml b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/pom.xml
deleted file mode 100755
index 6f357321..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 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.
--->
-
-<!--
- Modifications copyright © 2017 AT&T Intellectual Property
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <parent>
- <groupId>io.fd.honeycomb.common</groupId>
- <artifactId>api-parent</artifactId>
- <version>1.16.9</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>sample-plugin-api</artifactId>
- <packaging>bundle</packaging>
-
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>mdsal-model-artifacts</artifactId>
- <version>0.8.2-Beryllium-SR2</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>iana-if-type-2014-05-08</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-yang-types-20130715</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-interfaces</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>ietf-inet-types-2013-07-15</artifactId>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.mdsal.model</groupId>
- <artifactId>yang-ext</artifactId>
- </dependency>
- </dependencies>
-
-<build>
-<plugins>
-<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
-</plugin>
-</plugins>
-</build>
-
-</project>
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/yang/sample-plugin.yang b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/yang/sample-plugin.yang
deleted file mode 100755
index df929782..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-api/src/main/yang/sample-plugin.yang
+++ /dev/null
@@ -1,77 +0,0 @@
-//*************************************************************//
-//
-// Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-//
-// 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.
-//
-//******************************************************************
-
-
-module sample-plugin {
-
- yang-version 1;
- namespace "urn:opendaylight:params:xml:ns:yang:sample-plugin";
- prefix "sample-plugin";
-
- import ietf-inet-types { prefix "inet"; }
-
- description
- "This YANG module defines the generic configuration and
- operational data for sample-plugin in VPP";
-
- revision "2016-09-18" {
- description "Initial revision of sample-plugin model";
- }
-
- container sample-plugin {
- uses sample-plugin-params;
- description "Configuration data of sample-plugin in Honeycomb";
-
- // READ
- // curl -u admin:admin http://localhost:8181/restconf/config/sample-plugin:sample-plugin
-
- // WRITE
- // curl http://localhost:8181/restconf/operational/sample-plugin:sample-plugin
-
- }
-
- container sample-plugin-state {
- config false;
- uses sample-plugin-params;
- description "Operational data of sample-plugin persisted in VPP";
-
- // READ
- // curl -u admin:admin http://localhost:8181/restconf/operational/sample-plugin:sample-plugin-state
- }
-
- grouping sample-plugin-params {
- container pg-streams {
- list pg-stream {
-
- key id;
- leaf id {
- type string;
- }
-
- leaf is-enabled {
- type boolean;
- }
- }
- }
- }
-
- notification sample-notification {
- leaf content {
- type string;
- }
- }
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/Readme.adoc b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/Readme.adoc
deleted file mode 100755
index c3ca7940..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/Readme.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
---Documentation for sample-plugin --
-
-TODO Replace with general description whats the purpose of sample-plugin and how it works
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/pom.xml b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/pom.xml
deleted file mode 100755
index 84f48b42..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/pom.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2015 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.
--->
-
-<!--
- Modifications copyright © 2017 AT&T Intellectual Property
--->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
- <parent>
- <groupId>io.fd.honeycomb.common</groupId>
- <artifactId>impl-parent</artifactId>
- <version>1.16.9</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <artifactId>sample-plugin-impl</artifactId>
- <packaging>bundle</packaging>
-
- <properties>
- <honeycomb.infra.version>1.16.9</honeycomb.infra.version>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>io.fd.honeycomb.common</groupId>
- <artifactId>sample-plugin-api</artifactId>
- <version>${honeycomb.infra.version}</version>
- </dependency>
-
- <!-- Honeycomb infrastructure-->
- <dependency>
- <groupId>io.fd.honeycomb</groupId>
- <artifactId>translate-api</artifactId>
- <version>${honeycomb.infra.version}</version>
- </dependency>
- <dependency>
- <groupId>io.fd.honeycomb.vpp</groupId>
- <artifactId>vpp-translate-utils</artifactId>
- <version>1.16.9</version>
- </dependency>
-
- <dependency>
- <groupId>io.fd.honeycomb</groupId>
- <artifactId>notification-api</artifactId>
- <version>${honeycomb.infra.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.fd.honeycomb</groupId>
- <artifactId>translate-spi</artifactId>
- <version>${honeycomb.infra.version}</version>
- </dependency>
-
- <dependency>
- <groupId>io.fd.honeycomb</groupId>
- <artifactId>cfg-init</artifactId>
- <version>${honeycomb.infra.version}</version>
- </dependency>
-
- <!-- DI -->
- <dependency>
- <groupId>com.google.inject</groupId>
- <artifactId>guice</artifactId>
- <version>${guice.version}</version>
- </dependency>
- <dependency>
- <groupId>net.jmob</groupId>
- <artifactId>guice.conf</artifactId>
- <version>${guice.config.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.inject.extensions</groupId>
- <artifactId>guice-multibindings</artifactId>
- <version>${guice.version}</version>
- </dependency>
-
- <!-- VPP's core Java APIs -->
- <dependency>
- <groupId>io.fd.vpp</groupId>
- <artifactId>jvpp-core</artifactId>
- <version>16.09</version>
- </dependency>
- </dependencies>
-
-<build>
-<plugins>
-<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
-</plugin>
-</plugins>
-</build>
-
-</project>
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/Module.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/Module.java
deleted file mode 100755
index 8cd46006..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/Module.java
+++ /dev/null
@@ -1,71 +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.
- */
-
-/*
- * Modifications copyright (c) 2017 AT&T Intellectual Property
- */
-
-package io.fd.honeycomb.tutorial;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.multibindings.Multibinder;
-import io.fd.honeycomb.data.init.DataTreeInitializer;
-import io.fd.honeycomb.translate.read.ReaderFactory;
-import io.fd.honeycomb.translate.v3po.util.NamingContext;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.tutorial.init.ConfigDataInitializer;
-//import io.fd.honeycomb.tutorial.read.ModuleStateReaderFactory;
-import io.fd.honeycomb.tutorial.write.ModuleWriterFactory;
-import net.jmob.guice.conf.core.ConfigurationModule;
-
-/**
- * Module class instantiating sample-plugin plugin components.
- */
-public final class Module extends AbstractModule {
-
- @Override
- protected void configure() {
- // requests injection of properties
- install(ConfigurationModule.create());
- requestInjection(ModuleConfiguration.class);
-
- // bind naming context instance for reader and writer factories
- // the first parameter is artificial name prefix in cases a name needs to be reconstructed for a vxlan tunnel
- // that is present in VPP but not in Honeycomb (could be extracted into configuration)
- // the second parameter is just the naming context ID (could be extracted into configuration)
- binder().bind(NamingContext.class).toInstance(new NamingContext("pgstream", "pgstream-context"));
-
- // creates reader factory binding
- // can hold multiple binding for separate yang modules
- // final Multibinder<ReaderFactory> readerFactoryBinder = Multibinder.newSetBinder(binder(), ReaderFactory.class);
- // readerFactoryBinder.addBinding().to(ModuleStateReaderFactory.class);
-
- // create writer factory binding
- // can hold multiple binding for separate yang modules
- final Multibinder<WriterFactory> writerFactoryBinder = Multibinder.newSetBinder(binder(), WriterFactory.class);
- writerFactoryBinder.addBinding().to(ModuleWriterFactory.class);
-
- // create initializer binding
- // can hold multiple binding for separate yang modules
- final Multibinder<DataTreeInitializer> initializerBinder =
- Multibinder.newSetBinder(binder(), DataTreeInitializer.class);
- initializerBinder.addBinding().to(ConfigDataInitializer.class);
-
- // Disable notification producer for now
-// Multibinder.newSetBinder(binder(), ManagedNotificationProducer.class).addBinding()
-// .to(SampleNotificationProducer.class);
- }
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/ModuleConfiguration.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/ModuleConfiguration.java
deleted file mode 100755
index ef6be6e2..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/ModuleConfiguration.java
+++ /dev/null
@@ -1,46 +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.tutorial;
-
-import net.jmob.guice.conf.core.BindConfig;
-import net.jmob.guice.conf.core.InjectConfig;
-import net.jmob.guice.conf.core.Syntax;
-
-/**
- * Class containing static configuration for sample-plugin module,<br>
- * either loaded from property file sample-plugin.json from classpath.
- * <p/>
- * Further documentation for the configuration injection can be found at:
- * https://github.com/yyvess/gconf
- */
-@BindConfig(value = "sample-plugin", syntax = Syntax.JSON)
-public final class ModuleConfiguration {
-
- // TODO change the sample property to real plugin configuration
- // If there is no such configuration, remove this, sample-plugin.json resource and its wiring from Module class
-
- /**
- * Sample property that's injected from external json configuration file.
- */
- @InjectConfig("sample-prop")
- public String sampleProp;
-
- /**
- * Constant name used to identify sample-plugin plugin specific components during dependency injection.
- */
- public static final String ELEMENT_SERVICE_NAME = "element-service";
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/init/ConfigDataInitializer.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/init/ConfigDataInitializer.java
deleted file mode 100755
index 8a7f4d10..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/init/ConfigDataInitializer.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.tutorial.init;
-
-import io.fd.honeycomb.data.init.AbstractDataTreeConverter;
-import com.google.inject.Inject;
-import com.google.inject.name.Named;
-import javax.annotation.Nonnull;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SamplePlugin;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SamplePluginBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SamplePluginState;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
-/**
- * Initialize configuration data based on operational data.
- * <p/>
- * Very useful when a plugin is initiated but the underlying layer already contains some operation state.
- * Deriving the configuration from existing operational state enables reconciliation in case when Honeycomb's persistence
- * is not available to do the work for us.
- */
-public final class ConfigDataInitializer extends AbstractDataTreeConverter<SamplePluginState, SamplePlugin> {
-
- @Inject
- public ConfigDataInitializer(@Named("honeycomb-initializer") @Nonnull final DataBroker bindingDataBroker) {
- super(bindingDataBroker, InstanceIdentifier.create(SamplePluginState.class), InstanceIdentifier.create(SamplePlugin.class));
- }
-
- @Override
- public SamplePlugin convert(final SamplePluginState operationalData) {
- // Transfer all the operational data into configuration
- return new SamplePluginBuilder()
- .setPgStreams(operationalData.getPgStreams())
- .build();
- }
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/notif/SampleNotificationProducer.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/notif/SampleNotificationProducer.java
deleted file mode 100755
index 6ae1394a..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/notif/SampleNotificationProducer.java
+++ /dev/null
@@ -1,86 +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.tutorial.notif;
-
-import io.fd.honeycomb.notification.ManagedNotificationProducer;
-import io.fd.honeycomb.notification.NotificationCollector;
-import java.util.Collection;
-import java.util.Collections;
-import javax.annotation.Nonnull;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SampleNotification;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SampleNotificationBuilder;
-import org.opendaylight.yangtools.yang.binding.Notification;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Notification producer for sample plugin
- */
-public class SampleNotificationProducer implements ManagedNotificationProducer {
-
- private static final Logger LOG = LoggerFactory.getLogger(SampleNotificationProducer.class);
-
- private Thread thread;
-
- @Override
- public void start(@Nonnull final NotificationCollector collector) {
- LOG.info("Starting notification stream for interfaces");
-
- // Simulating notification producer
- thread = new Thread(() -> {
- while(true) {
- if (Thread.currentThread().isInterrupted()) {
- return;
- }
-
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- break;
- }
-
- final SampleNotification notification = new SampleNotificationBuilder()
- .setContent("Hello world " + System.currentTimeMillis())
- .build();
- LOG.info("Emitting notification: {}", notification);
- collector.onNotification(notification);
- }
- }, "NotificationProducer");
- thread.setDaemon(true);
- thread.start();
- }
-
- @Override
- public void stop() {
- if(thread != null) {
- thread.interrupt();
- }
- }
-
- @Nonnull
- @Override
- public Collection<Class<? extends Notification>> getNotificationTypes() {
- // Producing only this single type of notification
- return Collections.singleton(SampleNotification.class);
- }
-
- @Override
- public void close() throws Exception {
- stop();
- }
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/ModuleWriterFactory.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/ModuleWriterFactory.java
deleted file mode 100755
index ad7669b5..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/ModuleWriterFactory.java
+++ /dev/null
@@ -1,63 +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.
- */
-
-/*
- * Modifications copyright (c) 2017 AT&T Intellectual Property
- */
-package io.fd.honeycomb.tutorial.write;
-
-import com.google.inject.Inject;
-import io.fd.honeycomb.translate.impl.write.GenericWriter;
-import io.fd.honeycomb.translate.v3po.util.NamingContext;
-import io.fd.honeycomb.translate.write.WriterFactory;
-import io.fd.honeycomb.translate.write.registry.ModifiableWriterRegistryBuilder;
-import javax.annotation.Nonnull;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.SamplePlugin;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.sample.plugin.params.PgStreams;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.sample.plugin.params.pg.streams.PgStream;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.openvpp.jvpp.core.future.FutureJVppCore;
-
-/**
- * Factory producing writers for sample-plugin plugin's data.
- */
-public final class ModuleWriterFactory implements WriterFactory {
-
- private static final InstanceIdentifier<SamplePlugin> ROOT_CONTAINER_ID = InstanceIdentifier.create(SamplePlugin.class);
-
- /**
- * Injected vxlan naming context shared with writer, provided by this plugin
- */
- @Inject
- private NamingContext pgNamingContext;
- /**
- * Injected jvpp core APIs, provided by Honeycomb's infrastructure
- */
- @Inject
- private FutureJVppCore jvppCore;
-
- @Override
- public void init(@Nonnull final ModifiableWriterRegistryBuilder registry) {
- // Unlike ReaderFactory, there's no need to add structural writers, just the writers that actually do something
-
- // register writer for vxlan tunnel
- registry.add(new GenericWriter<>(
- // What part of subtree this writer handles is identified by an InstanceIdentifier
- ROOT_CONTAINER_ID.child(PgStreams.class).child(PgStream.class),
- // Customizer (the actual translation code to do the heavy lifting)
- new PgWriteCustomizer(jvppCore, pgNamingContext)));
- }
-}
diff --git a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/PgWriteCustomizer.java b/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/PgWriteCustomizer.java
deleted file mode 100755
index 7a146f6c..00000000
--- a/vnfs/honeycomb_plugin/sample_plugin/sample-plugin-impl/src/main/java/io/fd/honeycomb/tutorial/write/PgWriteCustomizer.java
+++ /dev/null
@@ -1,155 +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.
- */
-
- /*
- * Modifications copyright (c) 2017 AT&T Intellectual Property
- */
-
-package io.fd.honeycomb.tutorial.write;
-
-import io.fd.honeycomb.translate.spi.write.ListWriterCustomizer;
-import io.fd.honeycomb.translate.v3po.util.NamingContext;
-import io.fd.honeycomb.translate.v3po.util.TranslateUtils;
-import io.fd.honeycomb.translate.write.WriteContext;
-import io.fd.honeycomb.translate.write.WriteFailedException;
-import javax.annotation.Nonnull;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.sample.plugin.params.pg.streams.PgStream;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.sample.plugin.rev160918.sample.plugin.params.pg.streams.PgStreamKey;
-import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import org.openvpp.jvpp.VppBaseCallException;
-import org.openvpp.jvpp.core.dto.PgEnableDisable;
-import org.openvpp.jvpp.core.dto.PgEnableDisableReply;
-import org.openvpp.jvpp.core.future.FutureJVppCore;
-
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * Writer for {@link VxlanTunnel} list node from our YANG model.
- */
-public final class PgWriteCustomizer implements ListWriterCustomizer<PgStream, PgStreamKey> {
-
-
- private static final Logger LOG = LoggerFactory.getLogger(PgWriteCustomizer.class);
-
- /**
- * JVpp APIs
- */
- private final FutureJVppCore jvppCore;
- /**
- * Shared vxlan tunnel naming context
- */
- private final NamingContext pgStreamNamingContext;
-
- public PgWriteCustomizer(final FutureJVppCore jvppCore, final NamingContext pgStreamNamingContext) {
- this.jvppCore = jvppCore;
- this.pgStreamNamingContext = pgStreamNamingContext;
- }
-
- @Override
- public void writeCurrentAttributes(@Nonnull final InstanceIdentifier<PgStream> id,
- @Nonnull final PgStream dataAfter,
- @Nonnull final WriteContext writeContext) throws WriteFailedException {
- // Create and set vxlan tunnel add request
- final PgEnableDisable pgEnableDisable = new PgEnableDisable();
- // 1 for add, 0 for delete
- //look into this file: ~/vpp/build-root/build-vpp-native/vpp-api/java/jvpp-core/org/openvpp/jvpp/core/dto/PgEnableDisable.java
- pgEnableDisable.isEnabled = 1;//public byte
- String sName = dataAfter.getId();
- //pgEnableDisable.streamName = sName.getBytes();//public byte[]
- byte[] tempArray = sName.getBytes();
- LOG.info("Going to copy array!!!");
- String tempMsg = "";
- pgEnableDisable.streamName = new byte[tempArray.length+1];
- for(int i = 0; i < tempArray.length; i++){
- tempMsg = "copying: i= "+i+" value: "+tempArray[i];
- LOG.info(tempMsg);
- pgEnableDisable.streamName[i] = tempArray[i];
- }
-
- //System.arraycopy( sName.getBytes(), 0, pgEnableDisable.streamName, 0, sName.length());
- pgEnableDisable.streamNameLength = sName.length() + 1;//public int
- String logMsg = "######***** Enabling: "+sName+" len: "+sName.length()+" getBytes:" + Arrays.toString(pgEnableDisable.streamName);
- LOG.info(logMsg);
- // dataAfter is the new vxlanTunnel configuration
- //final boolean isIpv6 = dataAfter.getSrc().getIpv6Address() != null;
- //vxlanAddDelTunnel.isIpv6 = TranslateUtils.booleanToByte(isIpv6);
- //vxlanAddDelTunnel.srcAddress = TranslateUtils.ipAddressToArray(isIpv6, dataAfter.getSrc());
- //vxlanAddDelTunnel.dstAddress = TranslateUtils.ipAddressToArray(isIpv6, dataAfter.getDst());
- // There are other input parameters that are not exposed by our YANG model, default values will be used
-
- try {
- final PgEnableDisableReply replyForWrite = TranslateUtils
- .getReplyForWrite(jvppCore.pgEnableDisable(pgEnableDisable).toCompletableFuture(), id);
-
- // VPP returns the index of new vxlan tunnel
- //final int newVxlanTunnelIndex = replyForWrite.swIfIndex;
- // It's important to store it in context so that reader knows to which name a vxlan tunnel is mapped
- pgStreamNamingContext.addName(1, dataAfter.getId(), writeContext.getMappingContext());
- } catch (VppBaseCallException e) {
- throw new WriteFailedException.CreateFailedException(id, dataAfter, e);
- }
- }
-
- @Override
- public void updateCurrentAttributes(@Nonnull final InstanceIdentifier<PgStream> id,
- @Nonnull final PgStream dataBefore,
- @Nonnull final PgStream dataAfter, @Nonnull final WriteContext writeContext)
- throws WriteFailedException {
- // Not supported at VPP API level, throw exception
- throw new WriteFailedException.UpdateFailedException(id, dataBefore, dataAfter,
- new UnsupportedOperationException("Vxlan tunnel update is not supported by VPP"));
- }
-
- @Override
- public void deleteCurrentAttributes(@Nonnull final InstanceIdentifier<PgStream> id,
- @Nonnull final PgStream dataBefore,
- @Nonnull final WriteContext writeContext) throws WriteFailedException {
- // Create and set vxlan tunnel add request
- //final VxlanAddDelTunnel vxlanAddDelTunnel = new VxlanAddDelTunnel();
- final PgEnableDisable pgEnableDisable = new PgEnableDisable();
- // 1 for add, 0 for delete
- //vxlanAddDelTunnel.isAdd = 0;
- pgEnableDisable.isEnabled = 0;//public byte
-
- String sName = dataBefore.getId();
- pgEnableDisable.streamName = sName.getBytes();//public byte[]
- pgEnableDisable.streamNameLength = sName.length()+1;//public int
-
- String logMsg1 = "***** Disabling: "+sName+" len: "+sName.length()+" getBytes:" + Arrays.toString(pgEnableDisable.streamName);
- LOG.info(logMsg1);
- // Vxlan tunnel is identified by its attributes when deleting, not index, so set all attributes
- // dataBefore is the vxlan tunnel that's being deleted
- //final boolean isIpv6 = dataBefore.getSrc().getIpv6Address() != null;
- //vxlanAddDelTunnel.isIpv6 = TranslateUtils.booleanToByte(isIpv6);
- //vxlanAddDelTunnel.srcAddress = TranslateUtils.ipAddressToArray(isIpv6, dataBefore.getSrc());
- //vxlanAddDelTunnel.dstAddress = TranslateUtils.ipAddressToArray(isIpv6, dataBefore.getDst());
- // There are other input parameters that are not exposed by our YANG model, default values will be used
-
- try {
- // final VxlanAddDelTunnelReply replyForWrite = TranslateUtils
- // .getReplyForWrite(jvppCore.vxlanAddDelTunnel(vxlanAddDelTunnel).toCompletableFuture(), id);
- final PgEnableDisableReply replyForWrite = TranslateUtils
- .getReplyForWrite(jvppCore.pgEnableDisable(pgEnableDisable).toCompletableFuture(), id);
- // It's important to remove the mapping from context
- pgStreamNamingContext.removeName(dataBefore.getId(), writeContext.getMappingContext());
- } catch (VppBaseCallException e) {
- throw new WriteFailedException.DeleteFailedException(id, e);
- }
- }
-}