Exemplo n.º 1
0
"download user database success"),a._listener&&a._listener.onSuccess)a._listener.onSuccess(4);c&&c(b)})}else{if(this._listener&&this._listener.onError)this._listener.onError({error:"no such tenant",error_code:100});c&&c(Error("tenant is null"))}};d.prototype._download=function(b,c){this._logger.log("debug","download user db:"+b.index);var a=this;this._requestDownload(function(d,f){d?(a._logger.log("trace","send download request error:"+d.stack),c&&c(d)):a._downloadZip(f,function(d,e){d?(a._logger.log("trace",
"download zip file error:"+d.stack),c&&c(d)):a._unzipFile(e,function(d,e){d?(a._logger.log("trace","unzip file error:"+d.stack),c&&c(d)):a._reloadUserDB(e,b,function(b){b&&a._logger.log("trace","reload user database error:"+b.stack);c&&c(b)})})})})};d.prototype._requestDownload=function(b){var c=this;this._reportProgress(0,"send download request",function(){c._logger.log("trace","send download user database request.");c._doRequest("GET","/creatorneo/userdb/requestDownload",null,null,function(a,c){if(c)try{c=
Exemplo n.º 2
0
"download zip file error:"+d.stack),c&&c(d)):a._unzipFile(e,function(d,e){d?(a._logger.log("trace","unzip file error:"+d.stack),c&&c(d)):a._reloadUserDB(e,b,function(b){b&&a._logger.log("trace","reload user database error:"+b.stack);c&&c(b)})})})})};d.prototype._requestDownload=function(b){var c=this;this._reportProgress(0,"send download request",function(){c._logger.log("trace","send download user database request.");c._doRequest("GET","/creatorneo/userdb/requestDownload",null,null,function(a,c){if(c)try{c=
Exemplo n.º 3
0
var h=a;g=g.createReadStream(b);g.on("error",function(a){h&&(a.code=201,h(a),h=null)});d.putObject({Bucket:"mediola-creator",Key:"user_db/"+c.ref,Body:g},function(a){h&&(a&&(a.code=202),h(a),h=null)}).on("error",function(a){h&&(a.code=203,h(a),h=null)})})};d.prototype._finishUpload=function(b,c){var a=this;this._reportProgress(3,"finish upload",function(){a._logger.log("trace","finish upload zip file ref:"+b);a._doRequest("POST","/creatorneo/userdb/finishUpload?ref="+b,null,null,function(a,b){if(b)try{b=
JSON.parse(b)}catch(g){a=g,a.code=303}a||b&&"success"==b.status||(a=Error("request upload response error:"+b.message),a.code=301);a&&!a.code&&(a.code=300);c&&c(a)})})};d.prototype._reportProgress=function(b,c,a){if(this._listener&&this._listener.onProgress)this._listener.onProgress(b,c,null,a);else a&&a()};d.prototype._fileExistsSync=function(b){var c=require("fs");try{c.statSync(b)}catch(a){if("ENOENT"==a.code)return!1}return!0};d.prototype._doRequest=function(b,c,a,e,d){var f=d;d=require(m.aio.syncmanager.PROTOCOL);
Exemplo n.º 4
0
m.aio.syncmanager.UserDBDownloader=function(){var d=function(b,c){this._logger=require("x.logger.js").getLogger("UserDBDownloader");this._username=b.username?b.username:"";this._password=b.password?b.password:"";this._listener=c};d.prototype.download=function(b,c){if(b){var a=this;this._download(b,function(b){if(b){if(a._logger.log("trace","download user database error:"+b.stack),a._listener&&a._listener.onError)a._listener.onError({error:b.message,error_code:b.code})}else if(a._logger.log("trace",
"download user database success"),a._listener&&a._listener.onSuccess)a._listener.onSuccess(4);c&&c(b)})}else{if(this._listener&&this._listener.onError)this._listener.onError({error:"no such tenant",error_code:100});c&&c(Error("tenant is null"))}};d.prototype._download=function(b,c){this._logger.log("debug","download user db:"+b.index);var a=this;this._requestDownload(function(d,f){d?(a._logger.log("trace","send download request error:"+d.stack),c&&c(d)):a._downloadZip(f,function(d,e){d?(a._logger.log("trace",
Exemplo n.º 5
0
n=n("zip");e.on("error",function(b){a._logger.log("warn","create user database error:"+b.message);c&&(c(b),c=null)});e.on("close",function(){c&&(c(null,q),c=null)});n.pipe(e);a._fileExistsSync(d)&&n.append(p.createReadStream(d),{name:"device_db"});a._fileExistsSync(h)&&n.append(p.createReadStream(h),{name:"macros_db"});a._fileExistsSync(g)&&n.append(p.createReadStream(g),{name:"device_db.enc"});if(a._fileExistsSync(k))if(p.statSync(k).isDirectory())n.directory(k,"automation");else{d=Error("Automation folder is not a directory: "+
Exemplo n.º 6
0
(a=Error("request upload response error:"+c.message),a.code=101));a&&!a.code&&(a.code=100);b&&b(a,c&&c.result)})})};d.prototype._uploadZip=function(b,c,a){var e=this;this._reportProgress(2,"upload zip file",function(){e._logger.log("trace","upload zip file with ref:"+c.ref);var d=new (require("aws-sdk").S3)({apiVersion:"2006-03-01",region:"eu-central-1",accessKeyId:c.credential.accessKeyId,secretAccessKey:c.credential.secretAccessKey,sessionToken:c.credential.sessionToken}),g=require("fs");require("path");
var h=a;g=g.createReadStream(b);g.on("error",function(a){h&&(a.code=201,h(a),h=null)});d.putObject({Bucket:"mediola-creator",Key:"user_db/"+c.ref,Body:g},function(a){h&&(a&&(a.code=202),h(a),h=null)}).on("error",function(a){h&&(a.code=203,h(a),h=null)})})};d.prototype._finishUpload=function(b,c){var a=this;this._reportProgress(3,"finish upload",function(){a._logger.log("trace","finish upload zip file ref:"+b);a._doRequest("POST","/creatorneo/userdb/finishUpload?ref="+b,null,null,function(a,b){if(b)try{b=
Exemplo n.º 7
0
"send upload request error:"+b.stack),c&&c(b)):(a._logger.log("trace","send upload request ok"),a._uploadZip(d,e,function(b){b?(a._logger.log("trace","upload zip error:"+b.stack),c&&c(b)):(a._logger.log("trace","upload zip ok"),a._finishUpload(e.ref,function(b){b?a._logger.log("trace","finish user database upload error:"+b.stack):a._logger.log("trace","finish user database upload ok");c&&c(b)}))}))}))})};d.prototype._zipUserDB=function(b,c){var a=this;this._reportProgress(0,"zip user database",function(){a._logger.log("trace",
Exemplo n.º 8
0
m.aio.syncmanager.RemoteDownloader.prototype._downloadFile=function(d,b,c){var a=this;this._logger.log("trace","download file:"+b.file);b.file?"device_db"===b.file?c&&c():b.file.match(/^resources.*/)&&this._s3cred?this._downloadFileFromS3(d,b,function(e){a._logger.log("trace","download file finish:"+b.file);e&&a._logger.log("trace","download file "+b.file+" from s3 error:"+e.message);c&&c(e)}):this._downloadFileFromServer(d,b,function(e){a._logger.log("trace","download file finish:"+b.file);if(e)a._logger.log("trace",
"download file "+b.file+" from server error:"+e.message),c&&c(e);else if("device_db"==b.file&&a._encrypted){e=require("path");var f=b.file.replace(/\//g,e.sep);a._decryptFile(d+e.sep+f,function(a){c&&c(a)})}else c&&c()}):c&&c(Error("file info has no file path"))};
Exemplo n.º 9
0
b,function(c,b){c&&f._logger.log("trace","upload remote file "+a.file+" error:"+b);e&&e(c)})}})}};
Exemplo n.º 10
0
a._listener&&a._listener.onSuccess)a._listener.onSuccess(4);c&&c(b)})}else{if(this._listener&&this._listener.onError)this._listener.onError({error:"no such tenant",error_code:100});c&&c(Error("tenant is null"))}};d.prototype._upload=function(b,c){this._logger.log("debug","upload user db:"+b.index);var a=this;this._zipUserDB(b,function(b,d){b?(a._logger.log("trace","zip user database error:"+b.stack),c&&c(b)):(a._logger.log("trace","zip user database ok"),a._requestUpload(function(b,e){b?(a._logger.log("trace",
"send upload request error:"+b.stack),c&&c(b)):(a._logger.log("trace","send upload request ok"),a._uploadZip(d,e,function(b){b?(a._logger.log("trace","upload zip error:"+b.stack),c&&c(b)):(a._logger.log("trace","upload zip ok"),a._finishUpload(e.ref,function(b){b?a._logger.log("trace","finish user database upload error:"+b.stack):a._logger.log("trace","finish user database upload ok");c&&c(b)}))}))}))})};d.prototype._zipUserDB=function(b,c){var a=this;this._reportProgress(0,"zip user database",function(){a._logger.log("trace",
Exemplo n.º 11
0
"Remote-File-MD5":a.md5,"Remote-File-SHA1":a.sha1,"Remote-File-Size":a.size};f._doPostRequest(c,g,b,function(c,b){c&&f._logger.log("trace","upload remote file "+a.file+" error:"+b);e&&e(c)})}});break;default:g.readFile(c+h.sep+a.file,function(c,b){if(c)e&&e(c);else{c="/creatorneo/remote/uploadFile?license="+d;var g={"Remote-File-Ref-Base64":!0,"Remote-File-Ref":(new Buffer(a.ref)).toString("base64"),"Remote-File-MD5":a.md5,"Remote-File-SHA1":a.sha1,"Remote-File-Size":a.size};f._doPostRequest(c,g,
Exemplo n.º 12
0
"Remote-File-MD5":a.md5,"Remote-File-SHA1":a.sha1,"Remote-File-Size":a.size};f._doPostRequest(c,g,b,function(c,b){c&&f._logger.log("trace","upload remote file "+a.file+" error:"+b);e&&e(c)})}});break;case "macros_db":case "deviceinfo.xml":g.readFile(b+h.sep+a.file,function(c,b){if(c)e&&e(c);else{"device_db"==a.file&&f._remotePassword&&(b=f._encrypt(b,f._remotePassword));c="/creatorneo/remote/uploadFile?license="+d;var g={"Remote-File-Ref-Base64":!0,"Remote-File-Ref":(new Buffer(a.ref)).toString("base64"),
Exemplo n.º 13
0
m.aio.syncmanager.RemoteUploader.prototype.upload=function(d,b,c,a){if(d)if(c){this._logger.log("debug","upload remote:"+c.id);var e=this;this._logger.log("trace","send upload remote request.");if(this._listener&&this._listener.onProgress)this._listener.onProgress(0,"start upload");this._doRemoteUploadReq(d,b,c,function(f,g){f?(e._logger.log("trace","send upload remote request error:"+f.stack),a&&a(f)):g.resources?(e._logger.log("trace","upload data one by one."),e._uploadResources(d,b,c,g,function(c,
b){c?a&&a(c):(e._logger.log("trace","send upload remote finish request."),e._finishUploadRemote(d,b,function(c){a&&a(c)}))})):a&&a(Error("server return format error"))})}else a&&a(Error("remote is null"));else a&&a(Error("license is empty"))};
Exemplo n.º 14
0
JSON.parse(c)}catch(f){a=f,a.code=103}a||(c&&"success"==c.status?c.result&&c.result.ref&&c.result.credential||(a=Error("request download response foramt error"),a.code=102):(a=Error("request download response error:"+c.message),a.code=101));a&&!a.code&&(a.code=100);b&&b(a,c.result)})})};d.prototype._downloadZip=function(b,c){var a=this;this._reportProgress(1,"download zip file",function(){a._logger.log("trace","download zip file with ref:"+b.ref);var d=require("m.aio.filemanager.js"),f=require("path"),
g=require("fs"),h=Math.round((new Date).getTime()/1E3),k=0;d=d.getTmpDir();for(var l=f.join(d,h+".zip");a._fileExistsSync(l);){k++;h++;if(10<k){c&&c(Error("can not create temp file"));return}l=f.join(d,h+".zip")}a._logger.log("trace","zip file:"+l);(new (require("aws-sdk").S3)({apiVersion:"2006-03-01",region:"eu-central-1",accessKeyId:b.credential.accessKeyId,secretAccessKey:b.credential.secretAccessKey,sessionToken:b.credential.sessionToken})).getObject({Bucket:"mediola-creator",Key:"user_db/"+b.ref},
function(a,b){a?(a.code=201,c&&c(a)):g.writeFile(l,b.Body,function(a){a&&(a.code=203);c&&c(a,l)})})})};d.prototype._unzipFile=function(b,c){var a=this;this._reportProgress(2,"unzip file",function(){var d=require("m.aio.filemanager.js"),f=require("path");require("fs");var g=Math.round((new Date).getTime()/1E3),h=0,k=d.getTmpDir();for(d=f.join(k,g+"");a._fileExistsSync(d);){h++;g++;if(10<h){f=Error("can not create temp folder");f.code=301;c&&c(f);return}d=f.join(k,g++)}a._logger.log("trace","unzip to folder:"+
Exemplo n.º 15
0
"send upload request error:"+b.stack),c&&c(b)):(a._logger.log("trace","send upload request ok"),a._uploadZip(d,e,function(b){b?(a._logger.log("trace","upload zip error:"+b.stack),c&&c(b)):(a._logger.log("trace","upload zip ok"),a._finishUpload(e.ref,function(b){b?a._logger.log("trace","finish user database upload error:"+b.stack):a._logger.log("trace","finish user database upload ok");c&&c(b)}))}))}))})};d.prototype._zipUserDB=function(b,c){var a=this;this._reportProgress(0,"zip user database",function(){a._logger.log("trace",
"zip the user database.");var e=require("path"),d=b.getDeviceFile(),g=b.getDeviceFile()+".enc",h=b.getMacrosFile();b.getDeviceinfoFile();var k=b.getFolderPath()+e.sep+"automation",l=require("m.aio.filemanager.js"),p=require("fs"),n=Math.round((new Date).getTime()/1E3),r=0;l=l.getTmpDir();for(var q=e.join(l,n+".zip");a._fileExistsSync(q);){r++;n++;if(10<r){c&&c(Error("can not create temp file"));return}q=e.join(l,n+".zip")}a._logger.log("trace","zip file:"+q);n=require("archiver");e=p.createWriteStream(q);
n=n("zip");e.on("error",function(b){a._logger.log("warn","create user database error:"+b.message);c&&(c(b),c=null)});e.on("close",function(){c&&(c(null,q),c=null)});n.pipe(e);a._fileExistsSync(d)&&n.append(p.createReadStream(d),{name:"device_db"});a._fileExistsSync(h)&&n.append(p.createReadStream(h),{name:"macros_db"});a._fileExistsSync(g)&&n.append(p.createReadStream(g),{name:"device_db.enc"});if(a._fileExistsSync(k))if(p.statSync(k).isDirectory())n.directory(k,"automation");else{d=Error("Automation folder is not a directory: "+
k);a._logger.log("error",d.message);c&&c(d);c=null;return}n.finalize()})};d.prototype._requestUpload=function(b){var c=this;this._reportProgress(1,"send upload request",function(){c._logger.log("trace","send upload user database request.");c._doRequest("POST","/creatorneo/userdb/requestUpload",null,null,function(a,c){if(c)try{c=JSON.parse(c)}catch(f){a=f,a.code=103}a||(c&&"success"==c.status?c.result&&c.result.ref&&c.result.credential||(a=Error("request upload response foramt error"),a.code=102):
Exemplo n.º 16
0
function(a,b){a?(a.code=201,c&&c(a)):g.writeFile(l,b.Body,function(a){a&&(a.code=203);c&&c(a,l)})})})};d.prototype._unzipFile=function(b,c){var a=this;this._reportProgress(2,"unzip file",function(){var d=require("m.aio.filemanager.js"),f=require("path");require("fs");var g=Math.round((new Date).getTime()/1E3),h=0,k=d.getTmpDir();for(d=f.join(k,g+"");a._fileExistsSync(d);){h++;g++;if(10<h){f=Error("can not create temp folder");f.code=301;c&&c(f);return}d=f.join(k,g++)}a._logger.log("trace","unzip to folder:"+
d);try{require("fs-extra").ensureDirSync(d)}catch(l){l.code=201;c&&c(l);return}f=new (require("adm-zip"))(b);try{f.extractAllTo(d,!0),c&&c(null,d)}catch(l){l.code=202,c&&c(l)}})};d.prototype._reloadUserDB=function(b,c,a){var d=require("fs"),f=require("fs-extra"),g=this;this._reportProgress(3,"load user database",function(){var e=require("path"),k=c.getDeviceFile(),l=c.getDeviceFile()+".enc",p=c.getMacrosFile(),n=c.getDeviceinfoFile(),r=e.join(c.getFolderPath(),"automation"),q=e.join(b,"device_db"),
Exemplo n.º 17
0
m.aio.syncmanager.RemoteDownloader.prototype._downloadFile=function(d,b,c){var a=this;this._logger.log("trace","download file:"+b.file);b.file?"device_db"===b.file?c&&c():b.file.match(/^resources.*/)&&this._s3cred?this._downloadFileFromS3(d,b,function(e){a._logger.log("trace","download file finish:"+b.file);e&&a._logger.log("trace","download file "+b.file+" from s3 error:"+e.message);c&&c(e)}):this._downloadFileFromServer(d,b,function(e){a._logger.log("trace","download file finish:"+b.file);if(e)a._logger.log("trace",