X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fimpl%2FNetconfServerSession.java;h=9ddc64f1a16934b95c6a3bd69410eef554e4313b;hp=4cc05b7b42fa40a17f9552e2d459b1bfdb85cea6;hb=082d7ba433b85d5810c50f624d2691088336e66a;hpb=9212fed678702583f4a555641208cf1c7b45b829 diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSession.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSession.java index 4cc05b7b42..9ddc64f1a1 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSession.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/NetconfServerSession.java @@ -15,9 +15,9 @@ import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.opendaylight.controller.netconf.api.NetconfSession; +import org.opendaylight.controller.netconf.api.AbstractNetconfSession; import org.opendaylight.controller.netconf.api.monitoring.NetconfManagementSession; -import org.opendaylight.protocol.framework.SessionListener; +import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.DomainName; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Host; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.netconf.monitoring.extension.rev131210.NetconfTcp; @@ -35,17 +35,17 @@ import org.slf4j.LoggerFactory; import com.google.common.base.Preconditions; -public class NetconfServerSession extends NetconfSession implements NetconfManagementSession { +public final class NetconfServerSession extends AbstractNetconfSession implements NetconfManagementSession { private static final Logger logger = LoggerFactory.getLogger(NetconfServerSession.class); - private final NetconfServerSessionNegotiator.AdditionalHeader header; + private final NetconfHelloMessageAdditionalHeader header; private Date loginTime; private long inRpcSuccess, inRpcFail, outRpcError; - public NetconfServerSession(SessionListener sessionListener, Channel channel, long sessionId, - NetconfServerSessionNegotiator.AdditionalHeader header) { + public NetconfServerSession(NetconfServerSessionListener sessionListener, Channel channel, long sessionId, + NetconfHelloMessageAdditionalHeader header) { super(sessionListener, channel, sessionId); this.header = header; logger.debug("Session {} created", toString()); @@ -72,6 +72,9 @@ public class NetconfServerSession extends NetconfSession implements NetconfManag public static final String ISO_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"; + private static final String dateTimePatternString = DateAndTime.PATTERN_CONSTANTS.get(0); + private static final Pattern dateTimePattern = Pattern.compile(dateTimePatternString); + @Override public Session toManagementSession() { SessionBuilder builder = new SessionBuilder(); @@ -81,16 +84,16 @@ public class NetconfServerSession extends NetconfSession implements NetconfManag Preconditions.checkState(DateAndTime.PATTERN_CONSTANTS.size() == 1); String formattedDateTime = formatDateTime(loginTime); - String pattern = DateAndTime.PATTERN_CONSTANTS.get(0); - Matcher matcher = Pattern.compile(pattern).matcher(formattedDateTime); - Preconditions.checkState(matcher.matches(), "Formatted datetime %s does not match pattern %s", formattedDateTime, pattern); + + Matcher matcher = dateTimePattern.matcher(formattedDateTime); + Preconditions.checkState(matcher.matches(), "Formatted datetime %s does not match pattern %s", formattedDateTime, dateTimePattern); builder.setLoginTime(new DateAndTime(formattedDateTime)); builder.setInBadRpcs(new ZeroBasedCounter32(inRpcFail)); builder.setInRpcs(new ZeroBasedCounter32(inRpcSuccess)); builder.setOutRpcErrors(new ZeroBasedCounter32(outRpcError)); - builder.setUsername(header.getUsername()); + builder.setUsername(header.getUserName()); builder.setTransport(getTransportForString(header.getTransport())); builder.setOutNotifications(new ZeroBasedCounter32(0L)); @@ -98,7 +101,7 @@ public class NetconfServerSession extends NetconfSession implements NetconfManag builder.setKey(new SessionKey(getSessionId())); Session1Builder builder1 = new Session1Builder(); - builder1.setSessionIdentifier(header.getSessionType()); + builder1.setSessionIdentifier(header.getSessionIdentifier()); builder.addAugmentation(Session1.class, builder1.build()); return builder.build(); @@ -106,9 +109,9 @@ public class NetconfServerSession extends NetconfSession implements NetconfManag private Class getTransportForString(String transport) { switch(transport) { - case "ssh" : return NetconfSsh.class; - case "tcp" : return NetconfTcp.class; - default: throw new IllegalArgumentException("Unknown transport type " + transport); + case "ssh" : return NetconfSsh.class; + case "tcp" : return NetconfTcp.class; + default: throw new IllegalArgumentException("Unknown transport type " + transport); } } @@ -117,4 +120,8 @@ public class NetconfServerSession extends NetconfSession implements NetconfManag return dateFormat.format(loginTime); } + @Override + protected NetconfServerSession thisInstance() { + return this; + } }