aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java')
-rw-r--r--framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java141
1 files changed, 0 insertions, 141 deletions
diff --git a/framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java b/framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java
deleted file mode 100644
index 4e5a2752..00000000
--- a/framework/src/onos/providers/netconf/flow/src/main/java/org/onosproject/provider/netconf/flow/impl/NetconfOperation.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onosproject.provider.netconf.flow.impl;
-
-import static org.onlab.util.Tools.delay;
-import static org.slf4j.LoggerFactory.getLogger;
-
-import java.io.IOException;
-
-import org.slf4j.Logger;
-
-import com.tailf.jnc.Capabilities;
-import com.tailf.jnc.JNCException;
-import com.tailf.jnc.SSHConnection;
-import com.tailf.jnc.SSHSession;
-
-/**
- * This is to carry necessary information to connect and execute NETCONF
- * operations.
- */
-public class NetconfOperation {
- private final Logger log = getLogger(NetconfOperation.class);
- private static final int EVENTINTERVAL = 2000;
- private static final int CONNECTION_CHECK_INTERVAL = 3;
- private static final String INPUT_HELLO_XML_MSG = new StringBuilder(
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>")
- .append("<hello xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">")
- .append("<capabilities><capability>urn:ietf:params:netconf:base:1.0</capability>")
- .append("</capabilities></hello>").toString();
-
- /**
- * This will send a Xml message to the device.
- * @param xmlMsg XML to send
- * @param username user name
- * @param password pass word
- * @param deviceIp ip address of the device
- * @param devicePort port on the device
- */
- protected void sendXmlMessage(String xmlMsg, String username,
- String password, String deviceIp,
- Integer devicePort) {
- SSHSession ssh = null;
- try {
- SSHConnection sshConnection = getConnection(username, password,
- deviceIp, devicePort);
- ssh = new SSHSession(sshConnection);
- executeMessage(ssh, INPUT_HELLO_XML_MSG);
- /*
- * execute acl message
- */
- executeMessage(ssh, xmlMsg);
-
- } catch (IOException e) {
- log.error("Unable to send Hello Message to the device: ", e);
- } catch (JNCException e) {
- log.error("Authentication fail while sending Hello Message to the device: ",
- e);
- } catch (Exception e) {
- log.error("Unable to send Hello Message to the device: ", e);
- } finally {
- log.debug("Closing the session after successful execution");
- if (ssh != null) {
- ssh.close();
- }
- }
- }
-
- private void executeMessage(SSHSession ssh, String xmlMsg)
- throws IOException, JNCException {
- String helloRequestXML = xmlMsg.trim();
-
- log.debug("Sending Hello");
- ssh.print(helloRequestXML);
- ssh.flush();
- String xmlResponse = null;
- int i = CONNECTION_CHECK_INTERVAL;
- while (!ssh.ready() && i > 0) {
- delay(EVENTINTERVAL);
- i--;
- }
-
- if (ssh.ready()) {
- StringBuffer readOne = ssh.readOne();
- if (readOne == null) {
- log.error("The Hello Contains No Capabilites");
- throw new JNCException(
- JNCException.SESSION_ERROR,
- "server does not support NETCONF base capability: "
- + Capabilities.NETCONF_BASE_CAPABILITY);
- } else {
- xmlResponse = readOne.toString().trim();
-
- log.debug("Reading Capabilities: "
- + ssh.getSSHConnection().getGanymedConnection()
- .getHostname());
- }
- }
- }
-
- /**
- * To establish SSH Connection.
- *
- * @param username user name
- * @param password pass word
- * @param sshHost host
- * @param sshPort port
- * @return new SSH connection
- * @throws IOException if connection fails
- * @throws JNCException if connection causes an error
- */
- public SSHConnection getConnection(String username, String password,
- String sshHost, Integer sshPort)
- throws IOException, JNCException {
- SSHConnection sshConnection;
- try {
- sshConnection = new SSHConnection(sshHost, sshPort);
- sshConnection.authenticateWithPassword(username, password);
- } catch (IOException e) {
- log.error("Unable to create a connection to the device: ");
- throw e;
- } catch (JNCException e) {
- log.error("Failed to connect to the device: ");
- throw e;
- }
- return sshConnection;
- }
-
-}