summaryrefslogtreecommitdiffstats
path: root/dgbuilder/public/util/js/migrateFlow.js
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/public/util/js/migrateFlow.js')
-rw-r--r--dgbuilder/public/util/js/migrateFlow.js184
1 files changed, 184 insertions, 0 deletions
diff --git a/dgbuilder/public/util/js/migrateFlow.js b/dgbuilder/public/util/js/migrateFlow.js
new file mode 100644
index 00000000..399db606
--- /dev/null
+++ b/dgbuilder/public/util/js/migrateFlow.js
@@ -0,0 +1,184 @@
+fs=require('fs');
+_=require('lodash');
+//extras=require("/home/users/schinthakayala/nodered/sheshi/dgxml/extras");
+//puts=extras.puts;
+var path = require('path');
+var appDir = path.dirname(require.main.filename);
+
+var dgjson = [];
+var level = 0;
+
+function getJSON() {
+var filename = process.argv[2];
+ console.log("reading json from flows file" + filename);
+ //flowsJson=fs.readFileSync(appDir + "/flows_ss4nj01dev01.localdomain.json").toString();
+ flowsJson=fs.readFileSync(filename).toString();
+ // Let's make a backup while we're here...
+ ts=Date.now().toString();
+ flows=JSON.parse(flowsJson);
+ //console.log("returning flows");
+ return(flows);
+}
+
+function getStartTag(xmlStr){
+ var startTag= null ;
+ if(xmlStr != null){
+ xmlStr = xmlStr.trim();
+ }
+ try{
+ var regex = new RegExp("(<)([^ >]+)");
+ var match = regex.exec(xmlStr);
+ if(match != null){
+ if(match[1] != undefined && match[2] != undefined){
+ startTag = match[2];
+ }
+ }
+ }catch(e){
+ console.log(e);
+ }
+ return startTag;
+
+}
+
+function getAttributeValue(xmlStr,attribute){
+ var attrVal=null;
+ try{
+ var myRe = new RegExp(attribute + "=['\"](.*)['\"] ","m");
+ var myArray = myRe.exec(xmlStr);
+ if(myArray != null && myArray[1] != null){
+ attrVal=myArray[1];
+ }
+ }catch(err){
+ console.log(err);
+ }
+ return attrVal;
+}
+
+function processNodes(){
+ var nodes = getJSON();
+ //console.dir(nodes);
+
+ nodes.forEach( function(node) {
+ if( node.xml != null && node.xml.indexOf("<service-logic") != -1){
+ //console.log(node.xml);
+ var module="";
+ var version="";
+ module=getAttributeValue(node.xml,"module");
+ /*
+ var myRe = new RegExp("module=\"(.*)\" ", "m");
+ var myArray = myRe.exec(node.xml);
+ if(myArray != null && myArray[1] != null){
+ module=myArray[1];
+ }
+ myRe = new RegExp("version=\"(.*)\">", "m");
+ myArray = myRe.exec(node.xml);
+ if(myArray != null && myArray[1] != null){
+ version=myArray[1];
+ //console.dir(myArray);
+ }
+ */
+ version=getAttributeValue(node.xml,"version");
+ node.type="service-logic";
+ //node.category="DGEmain";
+ node.module=module;
+ node.version=version;
+ if(module != null && version != null){
+ node.name=module+ "_" + version;
+ }
+ console.log("module=" + module);
+ console.log("version=" + version);
+ }else if( node.xml != null && node.xml.indexOf("<method") != -1){
+ var rpc=getAttributeValue(node.xml,"rpc");
+ node.type="method";
+ if(rpc != null){
+ node.name=rpc;
+ }
+ }else if( node.xml != null && node.xml.indexOf("<outcome") != -1){
+ var uxml = node.xml.toUpperCase();
+ if(uxml.indexOf("FAILURE") != -1){
+ node.type="failure";
+ }else if(uxml.indexOf("SUCCESS") != -1){
+ node.type="success";
+ }else if(uxml.indexOf("TRUE") != -1){
+ node.type="outcomeTrue";
+ }else if(uxml.indexOf("FALSE") != -1){
+ node.type="outcomeFalse";
+ }else if(uxml.indexOf("ALREADY-ACTIVE") != -1){
+ node.type="already-active";
+ }else if(uxml.indexOf("NOT-FOUND") != -1){
+ node.type="not-found";
+ }else{
+ node.type="other";
+ }
+ }else if( node.xml != null && node.xml.indexOf("<return") != -1){
+ var uxml = node.xml.toUpperCase();
+ if(uxml.indexOf("FAILURE") != -1){
+ node.type="returnFailure";
+ }else if(uxml.indexOf("SUCCESS") != -1){
+ node.type="returnSuccess";
+ }
+ }else if( node.xml != null && node.xml.indexOf("<exists") != -1){
+ node.type="exists";
+ }else if( node.xml != null && node.xml.indexOf("<block") != -1){
+ node.type="block";
+ var atomic=getAttributeValue(node.xml,"atomic");
+
+ if(atomic=='true'){
+ node.atomic="true";
+ node.name="block : atomic";
+ }else{
+ node.atomic="false";
+ node.name="block";
+ }
+ }else if( node.xml != null && node.xml.indexOf("<save") != -1){
+ node.type="save";
+ }else if( node.xml != null && node.xml.indexOf("<switch") != -1){
+ node.type="switchNode";
+ }else if( node.xml != null && node.xml.indexOf("<record") != -1){
+ node.type="record";
+ }else if( node.xml != null && node.xml.indexOf("<call") != -1){
+ node.type="call";
+ }else if( node.xml != null && node.xml.indexOf("<release") != -1){
+ node.type="release";
+ }else if( node.xml != null && node.xml.indexOf("<set") != -1){
+ node.type="set";
+ }else if( node.xml != null && node.xml.indexOf("<for") != -1){
+ node.type="for";
+ }else if( node.xml != null && node.xml.indexOf("<is-available") != -1){
+ node.type="is-available";
+ }else if( node.xml != null && node.xml.indexOf("<reserve") != -1){
+ node.type="reserve";
+ }else if( node.xml != null && node.xml.indexOf("<get-resource") != -1){
+ node.type="get-resource";
+ }else if( node.xml != null && node.xml.indexOf("<configure") != -1){
+ node.type="configure";
+ }else if( node.xml != null && node.xml.indexOf("<delete") != -1){
+ node.type="delete";
+ }else if( node.xml != null && node.xml.indexOf("<execute") != -1){
+ node.type="execute";
+ }
+ //console.dir(node);
+ });
+/*
+ var moduleName = "service-logic";
+ var methodName = "method";
+ for(var i=0;nodes != null && i<nodes.length;i++){
+ if(nodes[i].type == "service-logic"){
+ moduleName = nodes[i].name;
+ }
+ if(nodes[i].type == "method"){
+ methodName = nodes[i].name;
+ }
+ }
+ var fName = moduleName + "_" + methodName + ".json";
+ fName = fName.replace(/\s/g, "_");
+
+ var newFilename = process.argv[3];
+ var filename = newFilename + "/" + fName;
+ console.log("filename" + filename);
+ fs.writeFileSync(filename, JSON.stringify(nodes,null,4));
+ */
+}
+
+
+processNodes();