*\r
* @author Shixing Liu\r
*/\r
-\r
public class CliBuilder implements AutoCloseable {\r
-\r
private static final Logger LOG = LoggerFactory.getLogger(CliBuilder.class);\r
\r
private final DataBroker dataProvider;\r
* @param dataProvider\r
*/\r
public CliBuilder(DataBroker dataProvider) {\r
-\r
super();\r
+\r
this.dataProvider = dataProvider;\r
\r
LOG.info("New TelnetUtils.");\r
telnetUtils = new TelnetUtils();\r
\r
LOG.info("Initialized CliBuilder.");\r
+\r
+ return;\r
}\r
\r
/**\r
*/\r
public void init(List<PhysicalNode> physicalNodes) {\r
for ( PhysicalNode physicalNode : physicalNodes ) {\r
- //TODO:\r
+ // TODO:\r
}\r
+\r
+ return;\r
}\r
\r
/**\r
return vnPnMappingResultforNode;\r
}\r
\r
-\r
/**\r
*\r
* @param connection\r
return isTwoExtGroup;\r
}\r
\r
-\r
/**\r
*\r
* @param physicalLinkId\r
return physicalPortId;\r
}\r
\r
-\r
/**\r
*\r
* @param physicalLinkId\r
return physicalNodeId;\r
}\r
\r
-\r
/**\r
*\r
* @param physicalLinkId\r
return physicalPortId;\r
}\r
\r
-\r
/**\r
*\r
* @param onePhysicalNodeId\r
return physicalPath1;\r
}\r
\r
-\r
/**\r
*\r
*/\r
return peersOfPEs;\r
}\r
\r
-\r
/**\r
*\r
* @param oneNode\r
return Boolean.FALSE;\r
}\r
\r
-\r
/**\r
*\r
* @param peersList\r
return Boolean.TRUE;\r
}\r
\r
-\r
/**\r
*\r
* @param physicalNodeId\r
return template;\r
}\r
\r
-\r
/**\r
*\r
* @param peersList\r
\r
}\r
\r
-\r
/**\r
*\r
* @param user\r
}\r
}\r
\r
-\r
/**\r
*\r
* @throws Exception\r
*/\r
+ @Override\r
public void close() throws Exception {\r
-\r
if (telnetUtils != null){\r
telnetUtils.close();\r
}\r
- }\r
-\r
\r
+ return;\r
+ }\r
}\r
package org.opendaylight.nemo.renderer.cli;\r
\r
import com.google.common.base.Optional;\r
-import com.google.common.util.concurrent.FutureCallback;\r
-import com.google.common.util.concurrent.Futures;\r
-\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.concurrent.Executors;\r
-import java.util.concurrent.ScheduledExecutorService;\r
-import com.google.common.util.concurrent.CheckedFuture;\r
-\r
import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;\r
+import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;\r
import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent;\r
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
-import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;\r
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;\r
-\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalNodes;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.nodes.PhysicalNode;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMappingKey;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.UserVnPnMapping;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNetworkId;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNetworkId;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.Users;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.UserKey;\r
-\r
import org.opendaylight.yangtools.concepts.ListenerRegistration;\r
import org.opendaylight.yangtools.yang.binding.DataObject;\r
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;\r
-\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
\r
+import java.util.List;\r
import java.util.Map;\r
import java.util.Set;\r
\r
-\r
/**\r
*\r
* @author Shixing Liu\r
*/\r
public class CliTrigger implements AutoCloseable {\r
-\r
private static final Logger LOG = LoggerFactory.getLogger(CliTrigger.class);\r
+\r
private final DataBroker dataProvider;\r
private ListenerRegistration<DataChangeListener> userVnPnMappingChangeListenerReg;\r
private final CliBuilder cliBuilder;\r
* @param dataProvider\r
*/\r
public CliTrigger(DataBroker dataProvider) {\r
-\r
super();\r
\r
this.dataProvider = dataProvider;\r
cliBuilder = new CliBuilder(dataProvider);\r
- //register listener\r
+\r
+ // Register listener\r
registerUserVnPnMappingListener();\r
+\r
LOG.info("Initialized CliTrigger.");\r
}\r
\r
\r
\r
/**\r
- *\r
+ * A listener implementation.\r
*/\r
private class UserVnPnMappingChangeListener implements DataChangeListener {\r
\r
UserVnPnMapping userVnPnMapping = (UserVnPnMapping)dataObject;\r
UserId userId = userVnPnMapping.getUserId();\r
\r
- //TO DO :flowUtils.deleteFlowEntries(userId);??????\r
+ // TODO: flowUtils.deleteFlowEntries(userId);??????\r
\r
User user = getUser(userId);\r
VirtualNetwork virtualNetwork = getVirtualNetwork(userId);\r
Map<InstanceIdentifier<?>, DataObject> originalData = change.getOriginalData();\r
Set<InstanceIdentifier<?>> removedPaths = change.getRemovedPaths();\r
if ( null != removedPaths && !removedPaths.isEmpty() ) {\r
-\r
DataObject dataObject;\r
\r
for ( InstanceIdentifier<?> instanceId : removedPaths ) {\r
if ( null != dataObject && dataObject instanceof UserVnPnMapping ) {\r
UserVnPnMapping userVnPnMapping = (UserVnPnMapping)dataObject;\r
\r
- //TO DO\r
- //flowUtils.deleteFlowEntries(userVnPnMapping.getUserId());\r
+ // TODO\r
+ // flowUtils.deleteFlowEntries(userVnPnMapping.getUserId());\r
}\r
}\r
}\r
- return;\r
\r
+ return;\r
}\r
}\r
\r
-\r
+ @Override\r
public void close() throws Exception {\r
-\r
if ( null != this.userVnPnMappingChangeListenerReg ) {\r
this.userVnPnMappingChangeListenerReg.close();\r
}\r
if(null != this.cliBuilder){\r
this.cliBuilder.close();\r
}\r
+\r
+ return;\r
}\r
-}
\ No newline at end of file
+}\r
package org.opendaylight.nemo.renderer.cli;\r
\r
import org.jboss.netty.bootstrap.ClientBootstrap;\r
-import org.jboss.netty.channel.ChannelFactory;\r
-import org.jboss.netty.channel.ChannelPipeline;\r
-import org.jboss.netty.channel.ChannelPipelineFactory;\r
-import org.jboss.netty.channel.Channels;\r
-import org.jboss.netty.buffer.ChannelBuffer;\r
+import org.jboss.netty.channel.*;\r
import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;\r
import org.jboss.netty.handler.codec.string.StringDecoder;\r
import org.jboss.netty.handler.codec.string.StringEncoder;\r
-import org.jboss.netty.channel.*;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
\r
import java.net.InetSocketAddress;\r
import java.util.concurrent.Executors;\r
\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-\r
/**\r
*\r
* @author Shixing Liu\r
*/\r
public class TelnetUtils implements AutoCloseable {\r
-\r
private static final Logger LOG = LoggerFactory.getLogger(TelnetUtils.class);\r
\r
private static Boolean ClearOver = Boolean.TRUE;\r
*\r
*/\r
public TelnetUtils(){\r
-\r
LOG.info("TelnetUtils constructor");\r
}\r
\r
* @throws Exception\r
*/\r
public void close() throws Exception {\r
+ // TODO\r
\r
+ return;\r
}\r
\r
/**\r
/**\r
*\r
*/\r
- private static class ClientHandlerForClearOldConfig extends SimpleChannelUpstreamHandler {\r
+ private static class ClientHandlerForClearOldConfig extends SimpleChannelUpstreamHandler {\r
@Override\r
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {\r
}\r
\r
@Override\r
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)throws Exception {\r
-\r
String str = (String)(e.getMessage());\r
System.out.println(e.getMessage());\r
if(str.contains("Username")){\r
*\r
*/\r
private static void sendNewConfig(){\r
-\r
ChannelFactory factory = new NioClientSocketChannelFactory(\r
Executors.newCachedThreadPool(),\r
Executors.newCachedThreadPool());\r
bootstrap.connect(new InetSocketAddress(ipAddress, 23));\r
}\r
\r
-\r
/**\r
*\r
* @param deviceName\r
/**\r
*\r
*/\r
- private static class ClientHandlerForSendNewConfig extends SimpleChannelUpstreamHandler {\r
+ private static class ClientHandlerForSendNewConfig extends SimpleChannelUpstreamHandler {\r
@Override\r
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {\r
}\r
\r
@Override\r
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {\r
-\r
String str = (String)(e.getMessage());\r
System.out.println(e.getMessage());\r
if(str.contains("Username")){\r
e.getChannel().close();\r
}\r
}\r
-\r
-\r
-}
\ No newline at end of file
+}\r