@@ -19,24 +19,29 @@ var promise_utils = require('../util/promise_utils');
1919var os_utils = require ( '../util/os_util' ) ;
2020var config = require ( '../../config.js' ) ;
2121
22- var TMP_WORK_DIR = '/tmp/diag' ;
22+ var is_windows = ( process . platform === "win32" ) ;
23+
24+ var TMP_WORK_DIR = is_windows ? process . env . ProgramData + '/diag' : '/tmp/diag' ;
2325
2426function collect_basic_diagnostics ( limit_logs_size ) {
2527 return P . fcall ( function ( ) {
26- return promise_utils . promised_spawn ( 'rm' , [ '-rf' , TMP_WORK_DIR ] , process . cwd ( ) , true ) ;
28+ return promise_utils . folder_delete ( TMP_WORK_DIR ) ;
29+ //return promise_utils.promised_spawn('rm', ['-rf', TMP_WORK_DIR], process.cwd(), true);
2730 } )
2831 . then ( function ( ) {
29- return promise_utils . promised_spawn ( 'rm' , [ '-rf' , process . cwd ( ) + '/build/public/diagnose.tgz' ] , process . cwd ( ) , true ) ;
32+ return promise_utils . file_delete ( process . cwd ( ) + '/build/public/diagnose.tgz' ) ;
33+ //return promise_utils.promised_spawn('rm', ['-rf', process.cwd() + '/build/public/diagnose.tgz'], process.cwd(), true);
3034 } )
3135 . then ( function ( ) {
36+ console . log ( 'creating ' , TMP_WORK_DIR ) ;
3237 return mkdirp . sync ( TMP_WORK_DIR ) ;
3338 } )
3439 . then ( function ( ) {
3540 if ( fs . existsSync ( process . cwd ( ) + '/logs' ) ) {
36- if ( limit_logs_size ) {
41+ if ( limit_logs_size ) {
3742 //will take only noobaa.log and the first 9 zipped logs
38- return promise_utils . full_dir_copy ( process . cwd ( ) + '/logs' , TMP_WORK_DIR , 'noobaa?[1-9][0-9].log.gz' ) ;
39- } else {
43+ return promise_utils . full_dir_copy ( process . cwd ( ) + '/logs' , TMP_WORK_DIR , 'noobaa?[1-9][0-9].log.gz' ) ;
44+ } else {
4045 return promise_utils . full_dir_copy ( process . cwd ( ) + '/logs' , TMP_WORK_DIR ) ;
4146 }
4247 } else {
@@ -45,13 +50,15 @@ function collect_basic_diagnostics(limit_logs_size) {
4550 } )
4651 . then ( function ( ) {
4752 if ( fs . existsSync ( '/var/log/noobaa_local_service.log' ) ) {
48- return promise_utils . promised_spawn ( 'cp' , [ '-f' , '/var/log/noobaa_local_service.log' , TMP_WORK_DIR ] , process . cwd ( ) ) ;
53+ return promise_utils . file_copy ( '/var/log/noobaa_local_service.log' , TMP_WORK_DIR ) ;
54+ //return promise_utils.promised_spawn('cp', ['-f', '/var/log/noobaa_local_service.log', TMP_WORK_DIR], process.cwd());
4955 } else {
5056 return ;
5157 }
5258 } )
5359 . then ( function ( ) {
54- return promise_utils . promised_spawn ( 'cp' , [ '-f' , process . cwd ( ) + '/package.json' , TMP_WORK_DIR ] , process . cwd ( ) ) ;
60+ return promise_utils . file_copy ( process . cwd ( ) + '/package.json' , TMP_WORK_DIR ) ;
61+ //return promise_utils.promised_spawn('cp', ['-f', process.cwd() + '/package.json', TMP_WORK_DIR], process.cwd());
5562 } )
5663 . then ( function ( ) {
5764 return os_utils . netstat_single ( TMP_WORK_DIR + '/netstat.out' ) ;
@@ -71,7 +78,11 @@ function write_agent_diag_file(data) {
7178
7279function pack_diagnostics ( dst ) {
7380 return P . fcall ( function ( ) {
74- return promise_utils . promised_exec ( 'tar -zcvf ' + dst + ' ' + TMP_WORK_DIR + '/*' ) ;
81+ return promise_utils . file_delete ( dst ) ;
82+ } ) . then ( function ( ) {
83+ console . log ( 'pack - ' , dst ) ;
84+ return promise_utils . pack ( dst , TMP_WORK_DIR ) ;
85+ // return promise_utils.promised_exec('tar -zcvf ' + dst + ' ' + TMP_WORK_DIR + '/*');
7586 } )
7687 . then ( function ( ) {
7788 return archive_diagnostics_pack ( dst ) ;
@@ -80,7 +91,8 @@ function pack_diagnostics(dst) {
8091 //The reason is that every distribution has its own issues.
8192 //We had a case where it failed due to file change during the file.
8293 //This flag can help, but not all the distributions support it
83- console . error ( "failed to tar, an attempt to ignore file changes" ) ;
94+ //This is not valid for windows where we have our own executable
95+ console . error ( "failed to tar, an attempt to ignore file changes" , err ) ;
8496 return P . fcall ( function ( ) {
8597 return promise_utils . promised_exec ( 'tar --warning=no-file-changed -zcvf ' + dst + ' ' + TMP_WORK_DIR + '/*' ) ;
8698 } )
@@ -101,27 +113,37 @@ function pack_diagnostics(dst) {
101113//Archive the current diagnostics pack, save to
102114function archive_diagnostics_pack ( dst ) {
103115 return P . fcall ( function ( ) {
116+ console . log ( 'archive_diagnostics_pack1' ) ;
104117 return mkdirp . sync ( config . central_stats . previous_diag_packs_dir ) ;
105118 } )
106119 . then ( function ( ) {
120+ console . log ( 'archive_diagnostics_pack2' ) ;
107121 return P . nfcall ( fs . readdir , config . central_stats . previous_diag_packs_dir ) ;
108122 } )
109123 . then ( function ( files ) {
124+ console . log ( 'archive_diagnostics_pack3' ) ;
125+
110126 //Check if current number of archived packs exceeds the max
111127 if ( files . length === config . central_stats . previous_diag_packs_count ) {
112128 //Delete the oldest pack
129+ console . log ( 'archive_diagnostics_pack4' ) ;
130+
113131 var sorted_files = _ . orderBy ( files ) ;
114132 return P . nfcall ( fs . unlink , config . central_stats . previous_diag_packs_dir + '/' + sorted_files [ 0 ] ) ;
115133 } else {
134+ console . log ( 'archive_diagnostics_pack5' ) ;
135+
116136 return ;
117137 }
118138 } )
119139 . then ( function ( ) {
140+ console . log ( 'archive_diagnostics_pack6' ) ;
141+
120142 //Archive the current pack
121143 var now = new Date ( ) ;
122144 var tail = now . getDate ( ) + '-' + ( now . getMonth ( ) + 1 ) + '_' + now . getHours ( ) + '-' + now . getMinutes ( ) ;
123-
124- return promise_utils . promised_exec ( 'cp ' + dst + ' ' + config . central_stats . previous_diag_packs_dir + '/DiagPack_' + tail + '.tgz' ) ;
145+ return promise_utils . file_copy ( dst , config . central_stats . previous_diag_packs_dir + '/DiagPack_' + tail + '.tgz' ) ;
146+ // return promise_utils.file_copy ('cp ' + dst + ' ' + config.central_stats.previous_diag_packs_dir + '/DiagPack_' + tail + '.tgz');
125147 } )
126148 . then ( null , function ( err ) {
127149 console . error ( 'Error in archive_diagnostics_pack' , err , err . stack ) ;
0 commit comments