[SDFAB-1048] Fix wiring issue caused by readPortId
Leverage the dep already in place between gnmi driver and gnmi protocol
and expose readPortId as cfg property of GnmiControllerImpl
Change-Id: I34defd8928589129dc84cae45033f7f7c3c673bb
diff --git a/drivers/gnmi/BUILD b/drivers/gnmi/BUILD
index 772ae88..e3535cc 100644
--- a/drivers/gnmi/BUILD
+++ b/drivers/gnmi/BUILD
@@ -6,6 +6,7 @@
"//core/store/serializers:onos-core-serializers",
"//protocols/gnmi/stub:onos-protocols-gnmi-stub",
"//protocols/gnmi/api:onos-protocols-gnmi-api",
+ "//protocols/gnmi/ctl:onos-protocols-gnmi-ctl",
"//protocols/grpc/api:onos-protocols-grpc-api",
"//protocols/grpc/utils:onos-protocols-grpc-utils",
]
diff --git a/drivers/gnmi/src/main/java/org/onosproject/drivers/gnmi/OpenConfigGnmiDeviceDescriptionDiscovery.java b/drivers/gnmi/src/main/java/org/onosproject/drivers/gnmi/OpenConfigGnmiDeviceDescriptionDiscovery.java
index 6ae4c33..81c59b4 100644
--- a/drivers/gnmi/src/main/java/org/onosproject/drivers/gnmi/OpenConfigGnmiDeviceDescriptionDiscovery.java
+++ b/drivers/gnmi/src/main/java/org/onosproject/drivers/gnmi/OpenConfigGnmiDeviceDescriptionDiscovery.java
@@ -25,6 +25,7 @@
import org.onlab.packet.ChassisId;
import org.onosproject.gnmi.api.GnmiClient;
import org.onosproject.gnmi.api.GnmiController;
+import org.onosproject.gnmi.ctl.GnmiControllerImpl;
import org.onosproject.grpc.utils.AbstractGrpcHandlerBehaviour;
import org.onosproject.net.AnnotationKeys;
import org.onosproject.net.DefaultAnnotations;
@@ -62,15 +63,23 @@
private static final String UNKNOWN = "unknown";
- // FIXME temporary solution will be removed when the
- // transition to p4rt translation is completed
- public static boolean readPortId = false;
+ private GnmiController gnmiController;
public OpenConfigGnmiDeviceDescriptionDiscovery() {
super(GnmiController.class);
}
@Override
+ protected boolean setupBehaviour(String opName) {
+ if (!super.setupBehaviour(opName)) {
+ return false;
+ }
+
+ gnmiController = handler().get(GnmiController.class);
+ return true;
+ }
+
+ @Override
public DeviceDescription discoverDeviceDetails() {
return new DefaultDeviceDescription(
data().deviceId().uri(),
@@ -125,7 +134,7 @@
}
/* Override port number if read port-id is enabled
and /interfaces/interface/state/id is available */
- if (readPortId && portIds.containsKey(key)) {
+ if (readPortId() && portIds.containsKey(key)) {
value.withPortNumber(portIds.get(key));
}
DefaultAnnotations annotation = annotations.get(key).build();
@@ -135,6 +144,13 @@
return portDescriptionList;
}
+ private boolean readPortId() {
+ // FIXME temporary solution will be substituted by
+ // an XML driver property when the transition to
+ // p4rt translation is completed
+ return ((GnmiControllerImpl) gnmiController).readPortId();
+ }
+
private GetRequest buildPortStateRequest() {
Path path = Path.newBuilder()
.addElem(PathElem.newBuilder().setName("interfaces").build())