diff --git a/features/features.xml b/features/features.xml
index 7d23fb5b59..594dc6968b 100644
--- a/features/features.xml
+++ b/features/features.xml
@@ -130,10 +130,4 @@
mvn:org.onosproject/onos-core-trivial/@ONOS-VERSION
-
- onos-api
- mvn:org.onosproject/onos-netconf-provider-device/@ONOS-VERSION
-
-
diff --git a/providers/netconf/app/app.xml b/providers/netconf/app/app.xml
new file mode 100644
index 0000000000..f2d4762765
--- /dev/null
+++ b/providers/netconf/app/app.xml
@@ -0,0 +1,24 @@
+
+
+
+ ${project.description}
+
+ mvn:${project.groupId}/onos-netconf-provider-device/${project.version}
+
+
diff --git a/providers/netconf/app/features.xml b/providers/netconf/app/features.xml
new file mode 100644
index 0000000000..6a3d1a2c5a
--- /dev/null
+++ b/providers/netconf/app/features.xml
@@ -0,0 +1,27 @@
+
+
+
+ mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features
+
+ onos-api
+ mvn:io.netty/netty/3.9.2.Final
+ mvn:${project.groupId}/onos-netconf-provider-device/${project.version}
+
+
+
+
diff --git a/providers/netconf/app/pom.xml b/providers/netconf/app/pom.xml
new file mode 100644
index 0000000000..cd307b23f6
--- /dev/null
+++ b/providers/netconf/app/pom.xml
@@ -0,0 +1,43 @@
+
+
+
+ 4.0.0
+
+
+ org.onosproject
+ onos-netconf-providers
+ 1.2.0-SNAPSHOT
+ ../pom.xml
+
+
+ onos-netconf
+ pom
+
+ NetConf protocol southbound providers
+
+
+
+ org.onosproject
+ onos-netconf-provider-device
+ ${project.version}
+
+
+
+
+
diff --git a/providers/netconf/device/pom.xml b/providers/netconf/device/pom.xml
index 192d8e3780..0ebe079a7f 100644
--- a/providers/netconf/device/pom.xml
+++ b/providers/netconf/device/pom.xml
@@ -14,134 +14,138 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-
- 4.0.0
+
+ 4.0.0
-
+
+ org.onosproject
+ onos-netconf-providers
+ 1.2.0-SNAPSHOT
+ ../pom.xml
+
+
+ onos-netconf-provider-device
+ bundle
+
+ ONOS Netconf protocol device provider
+
+
+
+ org.osgi
+ org.osgi.compendium
+
+
+ ch.ethz.ganymed
+ ganymed-ssh2
+ 262
+
+
+
org.onosproject
- onos-netconf-providers
- 1.2.0-SNAPSHOT
- ../pom.xml
-
+ jnc
+ 1.0
+
+
+ org.jdom
+ jdom2
+ 2.0.5
+
+
+ jaxen
+ jaxen
+ 1.1.4
+ true
+
+
- onos-netconf-provider-device
- bundle
-
- ONOS Netconf protocol device provider
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 2.3
-
-
-
- com.tailf:JNC
-
- com/tailf/jnc/**
-
-
-
- ch.ethz.ganymed:ganymed-ssh2
-
- ch/ethz/ssh2/**
-
-
-
- org.jdom:jdom2
-
- org/jdom2/**
-
-
-
-
-
-
- package
-
- shade
-
-
-
-
-
- org.apache.felix
- maven-scr-plugin
-
-
- org.apache.felix
- maven-bundle-plugin
-
-
-
- com.tailf.jnc,
- ch.ethz.ssh2,
- ch.ethz.ssh2.auth,
- ch.ethz.ssh2.channel,
- ch.ethz.ssh2.crypto,
- ch.ethz.ssh2.crypto.cipher,
- ch.ethz.ssh2.crypto.dh,
- ch.ethz.ssh2.crypto.digest,
- ch.ethz.ssh2.log,
- ch.ethz.ssh2.packets,
- ch.ethz.ssh2.server,
- ch.ethz.ssh2.sftp,
- ch.ethz.ssh2.signature,
- ch.ethz.ssh2.transport,
- ch.ethz.ssh2.util,
- org.jdom2,
- org.jdom2.input,
- org.jdom2.output,
- org.jdom2.adapters,
- org.jdom2.filter,
- org.jdom2.internal,
- org.jdom2.located,
- org.jdom2.transform,
- org.jdom2.util,
- org.jdom2.xpath,
- org.jdom2.input.sax,
- org.jdom2.input.stax,
- org.jdom2.output.support,
- org.jdom2.xpath.jaxen,
- org.jdom2.xpath.util
-
-
-
-
-
- org.onosproject
- onos-maven-plugin
-
-
-
-
-
- org.osgi
- org.osgi.compendium
-
-
- ch.ethz.ganymed
- ganymed-ssh2
- 262
-
-
-
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.3
+
+
+
+ com.tailf:JNC
+
+ com/tailf/jnc/**
+
+
+
+ ch.ethz.ganymed:ganymed-ssh2
+
+ ch/ethz/ssh2/**
+
+
+
+ org.jdom:jdom2
+
+ org/jdom2/**
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ org.apache.felix
+ maven-scr-plugin
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+
+ com.tailf.jnc,
+ ch.ethz.ssh2,
+ ch.ethz.ssh2.auth,
+ ch.ethz.ssh2.channel,
+ ch.ethz.ssh2.crypto,
+ ch.ethz.ssh2.crypto.cipher,
+ ch.ethz.ssh2.crypto.dh,
+ ch.ethz.ssh2.crypto.digest,
+ ch.ethz.ssh2.log,
+ ch.ethz.ssh2.packets,
+ ch.ethz.ssh2.server,
+ ch.ethz.ssh2.sftp,
+ ch.ethz.ssh2.signature,
+ ch.ethz.ssh2.transport,
+ ch.ethz.ssh2.util,
+ org.jdom2,
+ org.jdom2.input,
+ org.jdom2.output,
+ org.jdom2.adapters,
+ org.jdom2.filter,
+ org.jdom2.internal,
+ org.jdom2.located,
+ org.jdom2.transform,
+ org.jdom2.util,
+ org.jdom2.xpath,
+ org.jdom2.input.sax,
+ org.jdom2.input.stax,
+ org.jdom2.output.support,
+ org.jdom2.xpath.jaxen,
+ org.jdom2.xpath.util
+
+
+
+
+
org.onosproject
- jnc
- 1.0
-
-
- org.jdom
- jdom2
- 2.0.5
-
-
- jaxen
- jaxen
- 1.1.4
- true
-
-
+ onos-maven-plugin
+
+
+
+
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 9336adb9d4..5fb6ead6e8 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.Property;
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 @@ public class NetconfDeviceProvider extends AbstractProvider
@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 @@ public class NetconfDeviceProvider extends AbstractProvider
@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 @@ public class NetconfDeviceProvider extends AbstractProvider
@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 deviceEntry : netconfDeviceMap
.entrySet()) {
@@ -134,13 +139,9 @@ public class NetconfDeviceProvider extends AbstractProvider
}
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 @@ public class NetconfDeviceProvider extends AbstractProvider
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 {
diff --git a/providers/netconf/pom.xml b/providers/netconf/pom.xml
index b351d46658..511fe0460a 100644
--- a/providers/netconf/pom.xml
+++ b/providers/netconf/pom.xml
@@ -33,6 +33,7 @@
device
+ app