- final boolean isTcpOnly = (connectionType.equals("true")) ? true : false;
- final boolean isSchemaless = (schemaless.equals("true")) ? true : false;
- final Credentials credentials = new LoginPasswordBuilder().setPassword(password).setUsername(username).build();
-
- final NetconfNode netconfNode = new NetconfNodeBuilder()
- .setHost(new Host(new IpAddress(new Ipv4Address(deviceIp))))
- .setPort(new PortNumber(Integer.decode(devicePort)))
- .setTcpOnly(isTcpOnly)
- .setSchemaless(isSchemaless)
- .setCredentials(credentials)
- .build();
+ final boolean isTcpOnly = connectionType.equals("true");
+ final boolean isSchemaless = schemaless.equals("true");
+
+ final NetconfNodeBuilder netconfNodeBuilder = new NetconfNodeBuilder();
+ netconfNodeBuilder.setHost(new Host(new IpAddress(new Ipv4Address(deviceIp))))
+ .setPort(new PortNumber(Uint16.valueOf(Integer.decode(devicePort))))
+ .setTcpOnly(isTcpOnly)
+ .setSchemaless(isSchemaless);
+
+ if (isTcpOnly || protocol.equalsIgnoreCase("ssh")) {
+ if (Strings.isNullOrEmpty(username) || Strings.isNullOrEmpty(password)) {
+ return "Empty Username:" + username + " or Password:" + password
+ + ". In TCP or SSH mode, you must provide valid username and password.";
+ }
+ final Credentials credentials =
+ new LoginPasswordBuilder().setPassword(password).setUsername(username).build();
+ netconfNodeBuilder.setCredentials(credentials);
+ if (!isTcpOnly) {
+ netconfNodeBuilder.setProtocol(new ProtocolBuilder().setName(Name.SSH).build());
+ }
+ } else if (protocol.equalsIgnoreCase("tls")) {
+ TlsCase tlsCase = null;
+ if (!Strings.isNullOrEmpty(excludedTlsVersions)) {
+ tlsCase = new TlsCaseBuilder()
+ .setTls(new TlsBuilder()
+ .setExcludedVersions(Arrays.asList(excludedTlsVersions.split(","))).build())
+ .build();
+ }
+ netconfNodeBuilder.setProtocol(new ProtocolBuilder()
+ .setName(Name.TLS)
+ .setSpecification(tlsCase)
+ .build());
+ } else {
+ return "Invalid protocol: " + protocol + ". Only SSH and TLS are supported.";
+ }