Turned netconf providers into an app and made NetconfDeviceProvider register its configs with ComponentConfigService.
More cleanup needs to be done to avoid log messages with "+" and some other stylistic issues.
Change-Id: Ic1be1ce6d3340f5a6284ba5514d0052e01bdaaed
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 9336adb..5fb6ead 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
@@ -39,6 +39,7 @@
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.onlab.packet.ChassisId;
+import org.onosproject.cfg.ComponentConfigService;
import org.onosproject.cluster.ClusterService;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
@@ -78,9 +79,11 @@
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected ClusterService clusterService;
+ @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+ protected ComponentConfigService cfgService;
+
private ExecutorService deviceBuilder = Executors
- .newFixedThreadPool(1,
- groupedThreads("onos/netconf", "device-creator"));
+ .newFixedThreadPool(1, groupedThreads("onos/netconf", "device-creator"));
// Delay between events in ms.
private static final int EVENTINTERVAL = 5;
@@ -90,7 +93,7 @@
@Property(name = "devConfigs", value = "", label = "Instance-specific configurations")
private String devConfigs = null;
- @Property(name = "devPasswords", value = "", label = "Instace-specific password")
+ @Property(name = "devPasswords", value = "", label = "Instance-specific password")
private String devPasswords = null;
/**
@@ -102,13 +105,15 @@
@Activate
public void activate(ComponentContext context) {
- log.info("Netconf Device Provider Started");
+ cfgService.registerProperties(getClass());
providerService = providerRegistry.register(this);
modified(context);
+ log.info("Started");
}
@Deactivate
public void deactivate(ComponentContext context) {
+ cfgService.unregisterProperties(getClass(), false);
try {
for (Entry<DeviceId, NetconfDevice> deviceEntry : netconfDeviceMap
.entrySet()) {
@@ -134,13 +139,9 @@
}
Dictionary<?, ?> properties = context.getProperties();
String deviceCfgValue = get(properties, "devConfigs");
- log.info("Getting Device configuration from cfg file: "
- + deviceCfgValue);
+ log.info("Settings: devConfigs={}", deviceCfgValue);
if (!isNullOrEmpty(deviceCfgValue)) {
addOrRemoveDevicesConfig(deviceCfgValue);
- } else {
- log.info("Device Configuration value receiviced from the property 'devConfigs': "
- + deviceCfgValue + ", is not valid");
}
}
@@ -148,11 +149,9 @@
for (String deviceEntry : deviceConfig.split(",")) {
NetconfDevice device = processDeviceEntry(deviceEntry);
if (device != null) {
- log.info("Device Detail: " + "username: "
- + device.getUsername() + ", host: "
- + device.getSshHost() + ", port: "
- + device.getSshPort() + " device state: "
- + device.getDeviceState().name());
+ log.info("Device Detail: username: {}, host={}, port={}, state={}",
+ device.getUsername(), device.getSshHost(),
+ device.getSshPort(), device.getDeviceState().name());
if (device.isActive()) {
deviceBuilder.submit(new DeviceCreator(device, true));
} else {