netconf provider basic unitest and fix ONOS-5532
Change-Id: I31f31ae5bea580d0cd5ee05bf88339002ea741fc
diff --git a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
index 96dd14f..ffef6dd 100644
--- a/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
+++ b/providers/netconf/device/src/main/java/org/onosproject/provider/netconf/device/impl/NetconfDeviceProvider.java
@@ -24,8 +24,6 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.onlab.packet.ChassisId;
-import org.onosproject.cluster.ClusterService;
-import org.onosproject.cluster.NodeId;
import org.onosproject.core.ApplicationId;
import org.onosproject.core.CoreService;
import org.onosproject.incubator.net.config.basics.ConfigException;
@@ -84,7 +82,6 @@
public class NetconfDeviceProvider extends AbstractProvider
implements DeviceProvider {
- public static final String ACTIVE = "active";
private final Logger log = getLogger(getClass());
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
@@ -108,10 +105,7 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected MastershipService mastershipService;
- @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
- protected ClusterService clusterService;
-
- private static final String APP_NAME = "org.onosproject.netconf";
+ protected static final String APP_NAME = "org.onosproject.netconf";
private static final String SCHEME_NAME = "netconf";
private static final String DEVICE_PROVIDER_PACKAGE = "org.onosproject.netconf.provider.device";
private static final String UNKNOWN = "unknown";
@@ -124,7 +118,7 @@
private static final int ISREACHABLE_TIMEOUT = 2000;
private static final int DEFAULT_POLL_FREQUENCY_SECONDS = 30;
- private final ExecutorService executor =
+ protected final ExecutorService executor =
Executors.newFixedThreadPool(5, groupedThreads("onos/netconfdeviceprovider",
"device-installer-%d", log));
protected ScheduledExecutorService connectionExecutor
@@ -132,11 +126,10 @@
groupedThreads("onos/netconfdeviceprovider",
"connection-executor-%d", log));
- private DeviceProviderService providerService;
+ protected DeviceProviderService providerService;
private NetconfDeviceListener innerNodeListener = new InnerNetconfDeviceListener();
private InternalDeviceListener deviceListener = new InternalDeviceListener();
- private NodeId localNodeId;
- private ScheduledFuture<?> scheduledTask;
+ protected ScheduledFuture<?> scheduledTask;
private final ConfigFactory factory =
new ConfigFactory<ApplicationId, NetconfProviderConfig>(APP_SUBJECT_FACTORY,
@@ -148,7 +141,7 @@
return new NetconfProviderConfig();
}
};
- private final NetworkConfigListener cfgListener = new InternalNetworkConfigListener();
+ protected final NetworkConfigListener cfgListener = new InternalNetworkConfigListener();
private ApplicationId appId;
private boolean active;
@@ -163,7 +156,6 @@
controller.addDeviceListener(innerNodeListener);
deviceService.addListener(deviceListener);
executor.execute(NetconfDeviceProvider.this::connectDevices);
- localNodeId = clusterService.getLocalNode().id();
scheduledTask = schedulePolling();
log.info("Started");
}
@@ -359,6 +351,10 @@
providerService.deviceConnected(
deviceId, new DefaultDeviceDescription(
updatedDeviceDescription, true, updatedDeviceDescription.annotations()));
+ } else if (updatedDeviceDescription == null) {
+ providerService.deviceConnected(
+ deviceId, new DefaultDeviceDescription(
+ deviceDescription, true, deviceDescription.annotations()));
}
//if ports are not discovered, retry the discovery
if (deviceService.getPorts(deviceId).isEmpty()) {
@@ -366,7 +362,11 @@
}
}
} else {
- log.warn("No DeviceDescriptionDiscovery behaviour for device {}", deviceId);
+ log.warn("No DeviceDescriptionDiscovery behaviour for device {} " +
+ "using DefaultDeviceDescription", deviceId);
+ providerService.deviceConnected(
+ deviceId, new DefaultDeviceDescription(
+ deviceDescription, true, deviceDescription.annotations()));
}
} else if (!isReachable && deviceService.isAvailable(deviceId)) {
providerService.deviceDisconnected(deviceId);
@@ -511,7 +511,7 @@
}
return event.subject().annotations().value(AnnotationKeys.PROTOCOL)
.equals(SCHEME_NAME.toUpperCase()) &&
- mastershipService.getMasterFor(event.subject().id()).equals(localNodeId);
+ mastershipService.isLocalMaster(event.subject().id());
}
}
}