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(
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;
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;
}
return startingPort;
}
- public void setStartingPort(int startingPort) {
+ public void setStartingPort(final int startingPort) {
this.startingPort = startingPort;
}
return deviceCount;
}
- public void setDeviceCount(int deviceCount) {
+ public void setDeviceCount(final int deviceCount) {
this.deviceCount = deviceCount;
}
return generateConfigsTimeout;
}
- public void setGenerateConfigsTimeout(int generateConfigsTimeout) {
+ public void setGenerateConfigsTimeout(final int generateConfigsTimeout) {
this.generateConfigsTimeout = generateConfigsTimeout;
}
return ssh;
}
- public void setSsh(boolean ssh) {
+ public void setSsh(final boolean ssh) {
this.ssh = ssh;
}
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;
}
return capabilities;
}
- public void setCapabilities(Set<String> capabilities) {
+ public void setCapabilities(final Set<String> capabilities) {
this.capabilities = capabilities;
}
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;
}
}
@Deprecated
- public void setRpcConfigFile(File rpcConfigFile) {
+ public void setRpcConfigFile(final File rpcConfigFile) {
this.rpcConfigFile = rpcConfigFile;
}
}
@Deprecated
- public void setNotificationFile(File notificationFile) {
+ public void setNotificationFile(final File notificationFile) {
this.notificationFile = notificationFile;
}
}
@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
}
@Deprecated
- public void setSchemasDir(File schemasDir) {
+ public void setSchemasDir(final File schemasDir) {
this.schemasDir = schemasDir;
}
-
}