Commit 60ee4721 authored by project's avatar project

--no commit message

--no commit message
parent e4a3e89c
var util = require('util');
var DOPlugin = require('../do-plugin');
function DOTask(context,request){
DOPlugin.call(this,context,request);
this.name = "bssfile";
}
util.inherits(DOTask,DOPlugin);
DOTask.prototype.perform = require('./perform');
module.exports = DOTask;
var ctx = require('../../../context');
var fs = require('fs');
var BinStream = ctx.getLib('lib/bss/binarystream_v1_1');
function perform_function(context,request,response){
var job_id = context.jobconfig.job_id;
var transaction_id = context.transaction.id;
var param = context.jobconfig.data_out.param;
var memstore = context.task.memstore
var output_type = request.input_type;
var data = request.data;
var bss_filename = param.filename;
var dc_meta = {
"_jid" : job_id,
"_tid" : transaction_id,
"_ts" : Math.round((new Date).getTime() / 1000)
}
var dc_data = data;
if(fs.existsSync(bss_filename)){
bss_write(bss_filename,dc_meta,dc_data,response);
}else{
BinStream.format(bss_filename,function(err){
if(!err){
bss_write(bss_filename,dc_meta,dc_data,response);
}else{
response.error(err);
}
});
}
//response.success();
//response.reject();
//response.error("error message")
}
function bss_write(fn,meta,data,response)
{
BinStream.open(fn,function(err,bss){
if(!bss){
response.error(err);
return;
}
bss.write(data,{meta:meta},function(err,obj){
if(!err){
bss.close(function(err){
response.success();
});
}else{
bss.close(function(err){
response.error("ERROR");
});
}
});
});
}
module.exports = perform_function;
var util = require('util');
var DOPlugin = require('../do-plugin');
function DOTask(context,request){
DOPlugin.call(this,context,request);
this.name = "dir";
}
util.inherits(DOTask,DOPlugin);
DOTask.prototype.perform = require('./perform');
module.exports = DOTask;
var ctx = require('../../../context');
var fs = require('fs');
function perform_function(context,request,response){
var job_id = context.jobconfig.job_id;
var transaction_id = context.transaction.id;
var param = context.jobconfig.data_out.param;
var memstore = context.task.memstore
var output_type = request.input_type;
var data = request.data;
var path = param.path;
if(fs.lstatSync(path).isDirectory())
{
var filepath = path + '/' + job_id + '-' + transaction_id + '.out';
fs.writeFile(filepath, to_string(data), function(err) {
if(err) {
response.error(err)
}else{
response.success();
}
});
}else{
response.error("Invalid Dir")
}
//response.success();
//response.reject();
//response.error("error message")
}
function to_string(obj)
{
var str_data = '';
switch (typeof obj) {
case 'string':
str_data = obj;
break;
case 'object':
if (obj === null) {
str_data = 'null';
}else if(obj instanceof Buffer){
str_data = obj.toString('base64');
}else{
str_data = JSON.stringify(obj);
}
break;
default :
str_data = '';
}
return str_data;
}
module.exports = perform_function;
{
"job_id" : "bssfile",
"active" : true,
"trigger" : {
"type": "cron",
"cmd": "*/10 * * * * *"
},
"data_in" : {
"type": "example"
},
"data_transform" : {
"type": "noop"
},
"data_out" : {
"type": "bssfile",
"param": {
"filename" : "D:/testfile/MyBss.bss"
}
}
}
{
"job_id" : "dirtest",
"active" : true,
"trigger" : {
"type": "cron",
"cmd": "*/10 * * * * *"
},
"data_in" : {
"type": "example"
},
"data_transform" : {
"type": "noop"
},
"data_out" : {
"type": "dir",
"param": {
"path" : "D:/testfile"
}
}
}
...@@ -72,6 +72,15 @@ function run_job(cfg) ...@@ -72,6 +72,15 @@ function run_job(cfg)
async.waterfall([ async.waterfall([
function(callback){ function(callback){
var dm_i = domain.create();
dm_i.on('error', function(err) {
console.log('plugins error');
callback(err)
});
dm_i.run(function() {
perform_di(context,function(err,resp){ perform_di(context,function(err,resp){
if(resp.status == 'success'){ if(resp.status == 'success'){
callback(null,resp); callback(null,resp);
...@@ -79,6 +88,9 @@ function run_job(cfg) ...@@ -79,6 +88,9 @@ function run_job(cfg)
callback(resp); callback(resp);
} }
}); });
});
}, },
function(request,callback){ function(request,callback){
var dt_request = {'input_type':request.type,'data':request.data} var dt_request = {'input_type':request.type,'data':request.data}
...@@ -104,6 +116,15 @@ function run_job(cfg) ...@@ -104,6 +116,15 @@ function run_job(cfg)
}, },
function(request,callback){ function(request,callback){
var do_request = {'input_type':request.type,'data':request.data} var do_request = {'input_type':request.type,'data':request.data}
var dm_o = domain.create();
dm_o.on('error', function(err) {
console.log('plugins error');
callback(err)
});
dm_o.run(function() {
perform_do(context,do_request,function(err,do_resp){ perform_do(context,do_request,function(err,do_resp){
if(do_resp.status == 'success'){ if(do_resp.status == 'success'){
callback(null,do_resp); callback(null,do_resp);
...@@ -111,6 +132,9 @@ function run_job(cfg) ...@@ -111,6 +132,9 @@ function run_job(cfg)
callback(dt_resp); callback(dt_resp);
} }
}); });
});
} }
], ],
function(err,resp){ function(err,resp){
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment