2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.netconf.test.tool.config;
10 import com.google.common.collect.ImmutableSet;
13 import java.util.concurrent.TimeUnit;
14 import org.opendaylight.netconf.api.CapabilityURN;
15 import org.opendaylight.netconf.auth.AuthProvider;
16 import org.opendaylight.netconf.shaded.sshd.server.auth.pubkey.PublickeyAuthenticator;
17 import org.opendaylight.netconf.test.tool.operations.OperationsCreator;
18 import org.opendaylight.netconf.test.tool.rpchandler.RpcHandler;
19 import org.opendaylight.netconf.test.tool.rpchandler.RpcHandlerDefault;
20 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
24 public class Configuration {
25 private static final Logger LOG = LoggerFactory.getLogger(Configuration.class);
27 public static final Set<String> DEFAULT_BASE_CAPABILITIES_EXI = ImmutableSet.of(
29 CapabilityURN.BASE_1_1,
31 CapabilityURN.NOTIFICATION);
33 public static final Set<String> DEFAULT_BASE_CAPABILITIES = ImmutableSet.of(
35 CapabilityURN.BASE_1_1);
37 public static final Set<YangResource> DEFAULT_YANG_RESOURCES = ImmutableSet.of(
38 new YangResource("ietf-netconf-monitoring", "2010-10-04",
39 "/META-INF/yang/ietf-netconf-monitoring@2010-10-04.yang"),
40 new YangResource("odl-netconf-monitoring", "2022-07-18",
41 "/META-INF/yang/odl-netconf-monitoring@2022-07-18.yang"),
42 new YangResource("ietf-yang-types", "2013-07-15",
43 "/META-INF/yang/ietf-yang-types@2013-07-15.yang"),
44 new YangResource("ietf-inet-types", "2013-07-15",
45 "/META-INF/yang/ietf-inet-types@2013-07-15.yang")
48 public static final AuthProvider DEFAULT_AUTH_PROVIDER = (username, password) -> {
49 LOG.info("Auth with username and password: {}", username);
53 public static final PublickeyAuthenticator DEFAULT_PUBLIC_KEY_AUTHENTICATOR = (username, key, session) -> {
54 LOG.info("Auth with public key: {}", key);
58 private int generateConfigsTimeout = (int) TimeUnit.MINUTES.toMillis(30);
59 private int threadPoolSize = 8;
60 private int startingPort = 17830;
61 private int deviceCount = 1;
62 private boolean ssh = true;
63 private String ip = "0.0.0.0";
64 private Set<YangResource> defaultYangResources = DEFAULT_YANG_RESOURCES;
66 private Set<YangModuleInfo> models;
67 private Set<String> capabilities = DEFAULT_BASE_CAPABILITIES_EXI;
68 private RpcHandler rpcHandler = new RpcHandlerDefault();
69 private OperationsCreator operationsCreator;
70 private AuthProvider authProvider = DEFAULT_AUTH_PROVIDER;
71 private PublickeyAuthenticator publickeyAuthenticator = DEFAULT_PUBLIC_KEY_AUTHENTICATOR;
74 private boolean mdSal = false;
77 private File rpcConfigFile;
80 private File notificationFile;
83 private File initialConfigXMLFile;
86 private File schemasDir;
88 public Configuration() {
91 public PublickeyAuthenticator getPublickeyAuthenticator() {
92 return publickeyAuthenticator;
95 public void setPublickeyAuthenticator(final PublickeyAuthenticator publickeyAuthenticator) {
96 this.publickeyAuthenticator = publickeyAuthenticator;
99 public AuthProvider getAuthProvider() {
103 public void setAuthProvider(final AuthProvider authProvider) {
104 this.authProvider = authProvider;
107 public Set<YangResource> getDefaultYangResources() {
108 return defaultYangResources;
111 public void setDefaultYangResources(final Set<YangResource> defaultYangResources) {
112 this.defaultYangResources = defaultYangResources;
115 public int getThreadPoolSize() {
116 return threadPoolSize;
119 public void setThreadPoolSize(final int threadPoolSize) {
120 this.threadPoolSize = threadPoolSize;
123 public int getStartingPort() {
127 public void setStartingPort(final int startingPort) {
128 this.startingPort = startingPort;
131 public int getDeviceCount() {
135 public void setDeviceCount(final int deviceCount) {
136 this.deviceCount = deviceCount;
139 public int getGenerateConfigsTimeout() {
140 return generateConfigsTimeout;
143 public void setGenerateConfigsTimeout(final int generateConfigsTimeout) {
144 this.generateConfigsTimeout = generateConfigsTimeout;
147 public boolean isSsh() {
151 public void setSsh(final boolean ssh) {
155 public String getIp() {
159 public void setIp(final String ip) {
163 public Set<YangModuleInfo> getModels() {
167 public void setModels(final Set<YangModuleInfo> models) {
168 this.models = models;
171 public Set<String> getCapabilities() {
175 public void setCapabilities(final Set<String> capabilities) {
176 this.capabilities = capabilities;
179 public RpcHandler getRpcHandler() {
183 public void setRpcHandler(final RpcHandler rpcHandler) {
184 this.rpcHandler = rpcHandler;
187 public OperationsCreator getOperationsCreator() {
188 return operationsCreator;
191 public void setOperationsCreator(final OperationsCreator operationsCreator) {
192 this.operationsCreator = operationsCreator;
196 public boolean isMdSal() {
201 public void setMdSal(final boolean mdSal) {
206 public File getRpcConfigFile() {
207 return rpcConfigFile;
211 public void setRpcConfigFile(final File rpcConfigFile) {
212 this.rpcConfigFile = rpcConfigFile;
216 public File getNotificationFile() {
217 return notificationFile;
221 public void setNotificationFile(final File notificationFile) {
222 this.notificationFile = notificationFile;
226 public File getInitialConfigXMLFile() {
227 return initialConfigXMLFile;
231 public void setInitialConfigXMLFile(final File initialConfigXMLFile) {
232 this.initialConfigXMLFile = initialConfigXMLFile;
236 public boolean isXmlConfigurationProvided() {
237 return initialConfigXMLFile != null;
241 public boolean isNotificationsSupported() {
242 return notificationFile != null;
246 public File getSchemasDir() {
251 public void setSchemasDir(final File schemasDir) {
252 this.schemasDir = schemasDir;