summaryrefslogtreecommitdiffstats
path: root/v3po
diff options
context:
space:
mode:
Diffstat (limited to 'v3po')
-rw-r--r--v3po/api/src/main/yang/v3po.yang8
-rw-r--r--v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizer.java14
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizerTest.java8
-rw-r--r--v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VppStateTest.java5
4 files changed, 31 insertions, 4 deletions
diff --git a/v3po/api/src/main/yang/v3po.yang b/v3po/api/src/main/yang/v3po.yang
index 6d6d58df9..d3869abaf 100644
--- a/v3po/api/src/main/yang/v3po.yang
+++ b/v3po/api/src/main/yang/v3po.yang
@@ -8,7 +8,8 @@ module v3po {
"This revision adds the following new features:
- ingress/egress ACLs support
- moved ACL definitions to vpp-acl module
- - updated l2 container constraint (permit IP address on BVI interface)";
+ - updated l2 container constraint (permit IP address on BVI interface)
+ - added PID of vpp process to vpp-state";
}
revision "2015-01-05" {
@@ -639,6 +640,11 @@ module v3po {
leaf branch {
type string;
}
+ leaf pid {
+ type uint32;
+ description
+ "PID of the vpp process";
+ }
description
"vlib version info";
}
diff --git a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizer.java b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizer.java
index 71826dcb4..dfa0f9632 100644
--- a/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizer.java
+++ b/v3po/v3po2vpp/src/main/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizer.java
@@ -16,6 +16,7 @@
package io.fd.honeycomb.translate.v3po.vppstate;
+import com.google.common.primitives.UnsignedInts;
import io.fd.honeycomb.translate.read.ReadContext;
import io.fd.honeycomb.translate.read.ReadFailedException;
import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
@@ -25,6 +26,9 @@ import io.fd.honeycomb.translate.vpp.util.JvppReplyConsumer;
import io.fd.vpp.jvpp.core.dto.ShowVersion;
import io.fd.vpp.jvpp.core.dto.ShowVersionReply;
import io.fd.vpp.jvpp.core.future.FutureJVppCore;
+import io.fd.vpp.jvpp.dto.ControlPing;
+import io.fd.vpp.jvpp.dto.ControlPingReply;
+import io.fd.vpp.jvpp.dto.JVppReply;
import java.util.concurrent.CompletionStage;
import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.VppStateBuilder;
@@ -54,7 +58,7 @@ public final class VersionCustomizer
}
@Override
- public void readCurrentAttributes(@Nonnull InstanceIdentifier<Version> id, @Nonnull final VersionBuilder builder,
+ public void readCurrentAttributes(@Nonnull final InstanceIdentifier<Version> id, @Nonnull final VersionBuilder builder,
@Nonnull final ReadContext context) throws ReadFailedException {
// Execute with timeout
@@ -65,6 +69,14 @@ public final class VersionCustomizer
builder.setName(toString(reply.program));
builder.setBuildDate(toString(reply.buildDate));
builder.setBuildDirectory(toString(reply.buildDirectory));
+ builder.setPid(getPid(id));
}
+ private Long getPid(@Nonnull final InstanceIdentifier<Version> id) throws ReadFailedException {
+ final CompletionStage<JVppReply<ControlPing>> request = getFutureJVpp().send(new ControlPing());
+ final ControlPingReply reply = (ControlPingReply)getReplyForRead(request.toCompletableFuture(), id);
+ return UnsignedInts.toLong(reply.vpePid);
+ }
+
+
}
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizerTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizerTest.java
index 0b0378755..ab35bb330 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizerTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VersionCustomizerTest.java
@@ -22,13 +22,15 @@ import static org.mockito.Mockito.when;
import io.fd.honeycomb.translate.spi.read.ReaderCustomizer;
import io.fd.honeycomb.vpp.test.read.ReaderCustomizerTest;
+import io.fd.vpp.jvpp.core.dto.ShowVersion;
+import io.fd.vpp.jvpp.core.dto.ShowVersionReply;
+import io.fd.vpp.jvpp.dto.ControlPing;
+import io.fd.vpp.jvpp.dto.ControlPingReply;
import org.junit.Test;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.VppStateBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.Version;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.v3po.rev161214.vpp.state.VersionBuilder;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-import io.fd.vpp.jvpp.core.dto.ShowVersion;
-import io.fd.vpp.jvpp.core.dto.ShowVersionReply;
public class VersionCustomizerTest extends ReaderCustomizerTest<Version, VersionBuilder> {
@@ -50,7 +52,9 @@ public class VersionCustomizerTest extends ReaderCustomizerTest<Version, Version
reply.buildDirectory = new byte[] {};
when(api.showVersion(any(ShowVersion.class))).thenReturn(future(reply));
+ when(api.send(any(ControlPing.class))).thenReturn(future(new ControlPingReply()));
getCustomizer().readCurrentAttributes(InstanceIdentifier.create(Version.class), new VersionBuilder(), ctx);
verify(api).showVersion(any(ShowVersion.class));
+ verify(api).send(any(ControlPing.class));
}
} \ No newline at end of file
diff --git a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VppStateTest.java b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VppStateTest.java
index 9f3b8a41d..cdb2b0376 100644
--- a/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VppStateTest.java
+++ b/v3po/v3po2vpp/src/test/java/io/fd/honeycomb/translate/v3po/vppstate/VppStateTest.java
@@ -39,6 +39,8 @@ import io.fd.honeycomb.translate.util.read.registry.CompositeReaderRegistryBuild
import io.fd.honeycomb.vpp.test.util.NamingContextHelper;
import io.fd.honeycomb.translate.vpp.util.NamingContext;
import io.fd.honeycomb.vpp.test.util.FutureProducer;
+import io.fd.vpp.jvpp.dto.ControlPing;
+import io.fd.vpp.jvpp.dto.ControlPingReply;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -131,6 +133,7 @@ public class VppStateTest implements FutureProducer, NamingContextHelper {
.setBuildDirectory("1")
.setBranch("2")
.setBuildDate("3")
+ .setPid(0L)
.build();
}
@@ -141,6 +144,8 @@ public class VppStateTest implements FutureProducer, NamingContextHelper {
reply.version = version.getBranch().getBytes();
reply.buildDirectory = version.getBuildDirectory().getBytes();
when(api.showVersion(any(ShowVersion.class))).thenReturn(future(reply));
+ // Version Customizer uses ControlPing to obtain PID
+ when(api.send(any(ControlPing.class))).thenReturn(future(new ControlPingReply()));
}
private void whenL2FibTableDumpThenReturn(final List<L2FibTableEntry> entryList) {