import org.opendaylight.controller.md.sal.dom.api.DOMDataReadTransaction;
import org.opendaylight.controller.md.sal.dom.xsql.jdbc.JDBCResultSet;
import org.opendaylight.controller.md.sal.dom.xsql.jdbc.JDBCServer;
-import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.model.api.Module;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContextListener;
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
- new FileOutputStream("/tmp/xql.log"));
+ new FileOutputStream("/tmp/xql.log"));
}
}
}
synchronized (XSQLAdapter.class) {
if (l == null) {
l = new PrintStream(
- new FileOutputStream("/tmp/xql.log"));
+ new FileOutputStream("/tmp/xql.log"));
}
}
}
return this.bluePrint;
}
- public List<Object> collectModuleRoots(XSQLBluePrintNode table) {
+ public List<Object> collectModuleRoots(XSQLBluePrintNode table,LogicalDatastoreType type) {
if (table.getParent().isModule()) {
try {
List<Object> result = new LinkedList<Object>();
- InstanceIdentifier instanceIdentifier =
- InstanceIdentifier.builder()
+ YangInstanceIdentifier instanceIdentifier = YangInstanceIdentifier
+ .builder()
.node(XSQLODLUtils.getPath(table.getODLNode()).get(0))
.toInstance();
- DOMDataReadTransaction t = this.domDataBroker.newReadOnlyTransaction();
- Object node =
- t.read(LogicalDatastoreType.OPERATIONAL, instanceIdentifier)
- .get();
+ DOMDataReadTransaction t = this.domDataBroker
+ .newReadOnlyTransaction();
+ Object node = t.read(type,
+ instanceIdentifier).get();
+
node = XSQLODLUtils.get(node, "reference");
if (node == null) {
return result;
}
- //XSQLAdapter.log(""+node);
+ // XSQLAdapter.log(""+node);
Map<?, ?> children = XSQLODLUtils.getChildren(node);
for (Object c : children.values()) {
Map<?, ?> sons = XSQLODLUtils.getChildren(c);
XSQLAdapter.log(err);
}
} else {
- return collectModuleRoots(table.getParent());
+ return collectModuleRoots(table.getParent(),type);
}
return null;
}
public void execute(JDBCResultSet rs) {
List<XSQLBluePrintNode> tables = rs.getTables();
- List<Object> roots = collectModuleRoots(tables.get(0));
+ List<Object> roots = collectModuleRoots(tables.get(0),LogicalDatastoreType.OPERATIONAL);
+ roots.addAll(collectModuleRoots(tables.get(0),LogicalDatastoreType.CONFIGURATION));
+ if(roots.isEmpty()){
+ rs.setFinished(true);
+ }
XSQLBluePrintNode main = rs.getMainTable();
List<NETask> tasks = new LinkedList<XSQLAdapter.NETask>();
for (Object entry : roots) {
- NETask task = new NETask(rs, entry, main,bluePrint);
+ NETask task = new NETask(rs, entry, main, bluePrint);
rs.numberOfTasks++;
tasks.add(task);
}
}
- protected void processCommand(StringBuffer inputString, PrintStream sout,
- TelnetConnection tc) {
+ public void processCommand(StringBuffer inputString, PrintStream sout) {
if (inputString.toString().trim().equals("r")) {
sout.println(lastInputString);
inputString = lastInputString;
if (input.startsWith("setExcel")) {
String substr = input.substring("setExcel".length()).trim();
if (!substr.equals("")) {
- //excelPath01 = substr;
+ // excelPath01 = substr;
}
- //sout.println("Excel Path="+excelPath01);
+ // sout.println("Excel Path="+excelPath01);
} else if (input.startsWith("list vrel")) {
String substr = input.substring("list vrel".length()).trim();
- XSQLBluePrintNode node = bluePrint.getBluePrintNodeByTableName(substr);
+ XSQLBluePrintNode node = bluePrint
+ .getBluePrintNodeByTableName(substr);
if (node == null) {
sout.println("Unknown Interface " + substr);
return;
}
} else if (input.startsWith("list vfields")) {
String substr = input.substring("list vfields".length()).trim();
- XSQLBluePrintNode node = bluePrint.getBluePrintNodeByTableName(substr);
+ XSQLBluePrintNode node = bluePrint
+ .getBluePrintNodeByTableName(substr);
if (node == null) {
sout.println("Unknown Interface " + substr);
return;
jdbcServer.connectToClient(addr);
sout.println("Connected To " + addr);
} else if (input.startsWith("fetch")) {
- //fetchSize = Integer.parseInt(input.substring(6).trim());
+ // fetchSize = Integer.parseInt(input.substring(6).trim());
} else if (input.startsWith("list vtables")) {
- String iNames[] =
- bluePrint.getAllTableNames().toArray(new String[0]);
+ String iNames[] = bluePrint.getAllTableNames().toArray(
+ new String[0]);
Arrays.sort(iNames);
sout.println();
for (int i = 0; i < iNames.length; i++) {
sout.println(iNames[i]);
}
- } else if (input.startsWith("cd sid")) {
- String substr = input.substring("cd sid".length()).trim();
- for (NEEntry e : elements.values()) {
- if (((Module) e.ne).getName().equals(substr)) {
- tc.currentModule = (Module) e.ne;
- }
- }
- } else if (input.equals("list sid")) {
- String arr[] = new String[elements.size()];
-
- int i = 0;
- for (NEEntry entry : elements.values()) {
- arr[i] = entry.toString();
- i++;
- }
- Arrays.sort(arr);
- for (String s : arr) {
- sout.println(s);
- }
} else if (input.equals("help") || input.equals("?")) {
- //sout.println(getLongDescription());
+ // sout.println(getLongDescription());
} else if (input.equals("avmdata")) {
try {
- //myConnection.getManagedData();
+ // myConnection.getManagedData();
} catch (Exception err) {
}
} else if (input.equals("innerjoin")) {
- //innerJoin = !innerJoin;
- //sout.println("Inner Join set to "+innerJoin);
+ // innerJoin = !innerJoin;
+ // sout.println("Inner Join set to "+innerJoin);
} else if (input.equals("exit")) {
try {
sout.close();
if (toCsv) {
if (exportToFileName != null) {
try {
- PrintStream o =
- new PrintStream(new File(exportToFileName));
+ PrintStream o = new PrintStream(new File(
+ exportToFileName));
executeSql(inputString.toString(), o);
o.close();
} catch (Exception err) {
}
} else {
try {
- String fName =
- "export-" + System.currentTimeMillis() + ".csv";
+ String fName = "export-" + System.currentTimeMillis()
+ + ".csv";
PrintStream o = new PrintStream(new File(fName));
executeSql(inputString.toString(), o);
o.close();
}
}
-
if (!toCsv) {
out.print("|");
}
out.print(" ");
}
-
if (loc > 0) {
if (toCsv) {
out.print("\",\"");
}
}
-
public static class NETask implements Runnable {
private JDBCResultSet rs = null;
private XSQLBluePrintNode main = null;
private XSQLBluePrint bluePrint = null;
- public NETask(JDBCResultSet _rs, Object _modelRoot,XSQLBluePrintNode _main,XSQLBluePrint _bluePrint) {
+ public NETask(JDBCResultSet _rs, Object _modelRoot,
+ XSQLBluePrintNode _main, XSQLBluePrint _bluePrint) {
this.rs = _rs;
this.modelRoot = _modelRoot;
this.main = _main;
}
public void run() {
- rs.addRecords(modelRoot, main, true, main.getBluePrintNodeName(),bluePrint);
+ rs.addRecords(modelRoot, main, true, main.getBluePrintNodeName(),
+ bluePrint);
synchronized (rs) {
rs.numberOfTasks--;
if (rs.numberOfTasks == 0) {
}
}
-
private static class NEEntry {
private Object ne = null;
}
}
-
private class TelnetConnection extends Thread {
private Socket socket = null;
out.print(prompt);
char c = 0;
byte data[] = new byte[1];
- while (c != '\n') {
+ while (!socket.isClosed() && socket.isConnected() && !socket.isInputShutdown() && c != '\n') {
try {
in.read(data);
c = (char) data[0];
inputString.append(c);
} catch (Exception err) {
err.printStackTrace(out);
+ stopped = true;
+ break;
}
}
- processCommand(inputString, out, this);
+ processCommand(inputString, out);
inputString = new StringBuffer();
}
} catch (Exception err) {