Netconf Device Notification
[netconf.git] / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / config / Configuration.java
index c57f15817424821066f3ca65768eb2940ff0a19e..765ec49fa83450160f6c3124bd741b1ae57347d6 100644 (file)
@@ -12,16 +12,24 @@ import java.io.File;
 import java.util.Set;
 import java.util.concurrent.TimeUnit;
 import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
+import org.opendaylight.netconf.auth.AuthProvider;
+import org.opendaylight.netconf.shaded.sshd.server.auth.pubkey.PublickeyAuthenticator;
+import org.opendaylight.netconf.test.tool.operations.OperationsCreator;
 import org.opendaylight.netconf.test.tool.rpchandler.RpcHandler;
 import org.opendaylight.netconf.test.tool.rpchandler.RpcHandlerDefault;
-
+import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class Configuration {
 
+    private static final Logger LOG = LoggerFactory.getLogger(Configuration.class);
+
     public static final Set<String> DEFAULT_BASE_CAPABILITIES_EXI = ImmutableSet.of(
             XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_0,
             XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1,
-            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0
+            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_EXI_1_0,
+            XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_CAPABILITY_NOTIFICATION_1_0
     );
 
     public static final Set<String> DEFAULT_BASE_CAPABILITIES = ImmutableSet.of(
@@ -29,16 +37,41 @@ public class Configuration {
             XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1
     );
 
+    public static final Set<YangResource> DEFAULT_YANG_RESOURCES = ImmutableSet.of(
+            new YangResource("ietf-netconf-monitoring", "2010-10-04",
+                    "/META-INF/yang/ietf-netconf-monitoring@2010-10-04.yang"),
+            new YangResource("odl-netconf-monitoring", "2022-07-18",
+                    "/META-INF/yang/odl-netconf-monitoring@2022-07-18.yang"),
+            new YangResource("ietf-yang-types", "2013-07-15",
+                    "/META-INF/yang/ietf-yang-types@2013-07-15.yang"),
+            new YangResource("ietf-inet-types", "2013-07-15",
+                    "/META-INF/yang/ietf-inet-types@2013-07-15.yang")
+    );
+
+    public static final AuthProvider DEFAULT_AUTH_PROVIDER = (username, password) -> {
+        LOG.info("Auth with username and password: {}", username);
+        return true;
+    };
+
+    public static final PublickeyAuthenticator DEFAULT_PUBLIC_KEY_AUTHENTICATOR = (username, key, session) -> {
+        LOG.info("Auth with public key: {}", key);
+        return true;
+    };
+
     private int generateConfigsTimeout = (int) TimeUnit.MINUTES.toMillis(30);
     private int threadPoolSize = 8;
     private int startingPort = 17830;
     private int deviceCount = 1;
     private boolean ssh = true;
     private String ip = "0.0.0.0";
+    private Set<YangResource> defaultYangResources = DEFAULT_YANG_RESOURCES;
 
-    private Set<String> models;
+    private Set<YangModuleInfo> models;
     private Set<String> capabilities = DEFAULT_BASE_CAPABILITIES_EXI;
     private RpcHandler rpcHandler = new RpcHandlerDefault();
+    private OperationsCreator operationsCreator;
+    private AuthProvider authProvider = DEFAULT_AUTH_PROVIDER;
+    private PublickeyAuthenticator publickeyAuthenticator = DEFAULT_PUBLIC_KEY_AUTHENTICATOR;
 
     @Deprecated
     private boolean mdSal = false;
@@ -58,11 +91,35 @@ public class Configuration {
     public Configuration() {
     }
 
+    public PublickeyAuthenticator getPublickeyAuthenticator() {
+        return publickeyAuthenticator;
+    }
+
+    public void setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
+        this.publickeyAuthenticator = publickeyAuthenticator;
+    }
+
+    public AuthProvider getAuthProvider() {
+        return authProvider;
+    }
+
+    public void setAuthProvider(final AuthProvider authProvider) {
+        this.authProvider = authProvider;
+    }
+
+    public Set<YangResource> getDefaultYangResources() {
+        return defaultYangResources;
+    }
+
+    public void setDefaultYangResources(final Set<YangResource> defaultYangResources) {
+        this.defaultYangResources = defaultYangResources;
+    }
+
     public int getThreadPoolSize() {
         return threadPoolSize;
     }
 
-    public void setThreadPoolSize(int threadPoolSize) {
+    public void setThreadPoolSize(final int threadPoolSize) {
         this.threadPoolSize = threadPoolSize;
     }
 
@@ -70,7 +127,7 @@ public class Configuration {
         return startingPort;
     }
 
-    public void setStartingPort(int startingPort) {
+    public void setStartingPort(final int startingPort) {
         this.startingPort = startingPort;
     }
 
@@ -78,7 +135,7 @@ public class Configuration {
         return deviceCount;
     }
 
-    public void setDeviceCount(int deviceCount) {
+    public void setDeviceCount(final int deviceCount) {
         this.deviceCount = deviceCount;
     }
 
@@ -86,7 +143,7 @@ public class Configuration {
         return generateConfigsTimeout;
     }
 
-    public void setGenerateConfigsTimeout(int generateConfigsTimeout) {
+    public void setGenerateConfigsTimeout(final int generateConfigsTimeout) {
         this.generateConfigsTimeout = generateConfigsTimeout;
     }
 
@@ -94,7 +151,7 @@ public class Configuration {
         return ssh;
     }
 
-    public void setSsh(boolean ssh) {
+    public void setSsh(final boolean ssh) {
         this.ssh = ssh;
     }
 
@@ -102,15 +159,15 @@ public class Configuration {
         return ip;
     }
 
-    public void setIp(String ip) {
+    public void setIp(final String ip) {
         this.ip = ip;
     }
 
-    public Set<String> getModels() {
+    public Set<YangModuleInfo> getModels() {
         return models;
     }
 
-    public void setModels(Set<String> models) {
+    public void setModels(final Set<YangModuleInfo> models) {
         this.models = models;
     }
 
@@ -118,7 +175,7 @@ public class Configuration {
         return capabilities;
     }
 
-    public void setCapabilities(Set<String> capabilities) {
+    public void setCapabilities(final Set<String> capabilities) {
         this.capabilities = capabilities;
     }
 
@@ -126,17 +183,25 @@ public class Configuration {
         return rpcHandler;
     }
 
-    public void setRpcHandler(RpcHandler rpcHandler) {
+    public void setRpcHandler(final RpcHandler rpcHandler) {
         this.rpcHandler = rpcHandler;
     }
 
+    public OperationsCreator getOperationsCreator() {
+        return operationsCreator;
+    }
+
+    public void setOperationsCreator(final OperationsCreator operationsCreator) {
+        this.operationsCreator = operationsCreator;
+    }
+
     @Deprecated
     public boolean isMdSal() {
         return mdSal;
     }
 
     @Deprecated
-    public void setMdSal(boolean mdSal) {
+    public void setMdSal(final boolean mdSal) {
         this.mdSal = mdSal;
     }
 
@@ -146,7 +211,7 @@ public class Configuration {
     }
 
     @Deprecated
-    public void setRpcConfigFile(File rpcConfigFile) {
+    public void setRpcConfigFile(final File rpcConfigFile) {
         this.rpcConfigFile = rpcConfigFile;
     }
 
@@ -156,7 +221,7 @@ public class Configuration {
     }
 
     @Deprecated
-    public void setNotificationFile(File notificationFile) {
+    public void setNotificationFile(final File notificationFile) {
         this.notificationFile = notificationFile;
     }
 
@@ -166,13 +231,18 @@ public class Configuration {
     }
 
     @Deprecated
-    public void setInitialConfigXMLFile(File initialConfigXMLFile) {
+    public void setInitialConfigXMLFile(final File initialConfigXMLFile) {
         this.initialConfigXMLFile = initialConfigXMLFile;
     }
 
     @Deprecated
     public boolean isXmlConfigurationProvided() {
-        return initialConfigXMLFile != null && notificationFile != null;
+        return initialConfigXMLFile != null;
+    }
+
+    @Deprecated
+    public boolean isNotificationsSupported() {
+        return notificationFile != null;
     }
 
     @Deprecated
@@ -181,8 +251,7 @@ public class Configuration {
     }
 
     @Deprecated
-    public void setSchemasDir(File schemasDir) {
+    public void setSchemasDir(final File schemasDir) {
         this.schemasDir = schemasDir;
     }
-
 }