</dependency>
</dependencies>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-artifacts</id>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <phase>package</phase>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>${project.build.directory}/classes/initial/netvirt-coe-config.xml</file>
+ <type>xml</type>
+ <classifier>config</classifier>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
import org.opendaylight.yang.gen.v1.urn.opendaylight.coe.northbound.pod.rev170611.Coe;
import org.opendaylight.yang.gen.v1.urn.opendaylight.coe.northbound.pod.rev170611.coe.Pods;
import org.opendaylight.yang.gen.v1.urn.opendaylight.coe.northbound.pod.rev170611.pod_attributes.Interface;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.coe.config.rev180703.CoeConfig;
import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.elan.instances.ElanInstance;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
private ListenerRegistration<PodListener> listenerRegistration;
private final JobCoordinator jobCoordinator;
private final ManagedNewTransactionRunner txRunner;
+ private final CoeConfig coeConfig;
@Inject
- public PodListener(final DataBroker dataBroker, JobCoordinator jobCoordinator) {
+ public PodListener(final DataBroker dataBroker, JobCoordinator jobCoordinator,
+ CoeConfig coeConfig) {
registerListener(LogicalDatastoreType.CONFIGURATION, dataBroker);
this.txRunner = new ManagedNewTransactionRunnerImpl(dataBroker);
this.jobCoordinator = jobCoordinator;
+ this.coeConfig = coeConfig;
}
protected InstanceIdentifier<Pods> getWildCardPath() {
--- /dev/null
+<coe-config xmlns="urn:opendaylight:netvirt:coe:config">
+ <service-implementation-mode>kube-proxy</service-implementation-mode>
+</coe-config>
interface="org.opendaylight.infrautils.caches.CacheProvider"/>
<reference id="iMdsalApiManager"
interface="org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager"/>
+
+ <odl:clustered-app-config id="coeConfig"
+ binding-class="org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.coe.config.rev180703.CoeConfig"
+ default-config-file-name="netvirt-coe-config.xml"
+ update-strategy="none">
+ </odl:clustered-app-config>
+
</blueprint>
--- /dev/null
+module coe-config {
+ yang-version 1;
+ namespace "urn:opendaylight:netvirt:coe:config";
+ prefix "coe-config";
+
+ description
+ "Configuration for coe.";
+
+ revision "2018-07-03" {
+ description
+ "Initial revision.";
+ }
+
+ container coe-config {
+ config true;
+ leaf service-implementation-mode {
+ type enumeration {
+ enum "kube-proxy";
+ enum "odl-kube-proxy";
+ }
+ default "kube-proxy";
+ }
+ }
+}
<artifactId>coe-impl</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <!-- finalname="etc/opendaylight/datastore/initial/config/netvirt-coe-config.xml" -->
+ <groupId>org.opendaylight.netvirt</groupId>
+ <artifactId>coe-impl</artifactId>
+ <version>${project.version}</version>
+ <type>xml</type>
+ <classifier>config</classifier>
+ </dependency>
</dependencies>
</project>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<features name="odl-netvirt-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
+ <feature name="odl-netvirt-coe" version="${project.version}">
+ <configfile finalname="etc/opendaylight/datastore/initial/config/netvirt-coe-config.xml">
+ mvn:org.opendaylight.netvirt/coe-impl/${project.version}/xml/config
+ </configfile>
+ </feature>
+</features>