|
|
@ -425,11 +425,109 @@ for (hd in hostdirs) { |
|
|
|
} // END for (hd in hostdirs) {
|
|
|
|
|
|
|
|
|
|
|
|
// console.log('---------- SW ------------')
|
|
|
|
// console.log(JSON.stringify(sw_index_data, null, 2))
|
|
|
|
// Stats
|
|
|
|
console.log('---------- Generating Statistics ------------') |
|
|
|
|
|
|
|
let kernel_map = {} |
|
|
|
kernel_map['Linux'] = 'Linux' |
|
|
|
kernel_map['Darwin'] = 'OS X' |
|
|
|
kernel_map['Windows_NT'] = 'Windows' |
|
|
|
|
|
|
|
let os_stats = {} |
|
|
|
os_stats['HISTOGRAMS'] = {} |
|
|
|
os_stats['HISTOGRAMS']['KERNEL'] = {} |
|
|
|
os_stats['HISTOGRAMS']['OS'] = {} |
|
|
|
os_stats['HISTOGRAMS']['OS_VERSIONS'] = {} |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY'] = {} |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY-MM-DD'] = {} |
|
|
|
|
|
|
|
// os_stats['OS'] = {}
|
|
|
|
// os_stats['OS']['HOSTS'] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['COUNT'] = 0
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE'] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY'] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM'] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM-DD'] = {}
|
|
|
|
|
|
|
|
|
|
|
|
for (h in index_data) { |
|
|
|
// os_stats['OS']['HOSTS']['COUNT']++
|
|
|
|
let isd = skqlib.tell_time(index_data[h]['OS_INSTALL_DATE']) |
|
|
|
// console.log(h + ' ' + isd['UTC']['YYYY-MM-DD'])
|
|
|
|
|
|
|
|
// if (!os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY'].hasOwnProperty(isd['UTC']['YYYY'])) {
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY'][ isd['UTC']['YYYY'] ] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY'][ isd['UTC']['YYYY'] ]['COUNT'] = 0
|
|
|
|
// os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY'][ isd['UTC']['YYYY'] ] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY'][ isd['UTC']['YYYY'] ]['COUNT']++
|
|
|
|
|
|
|
|
if ( !os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY'].hasOwnProperty(isd['UTC']['YYYY']) ) { |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY'][ isd['UTC']['YYYY'] ] = 0 |
|
|
|
} |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY'][ isd['UTC']['YYYY'] ]++ |
|
|
|
|
|
|
|
// if (!os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM'].hasOwnProperty(isd['UTC']['YYYY'] + '-' + isd['UTC']['MM'])) {
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM'][ isd['UTC']['YYYY'] + '-' + isd['UTC']['MM'] ] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM'][ isd['UTC']['YYYY'] + '-' + isd['UTC']['MM'] ]['COUNT'] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM'][ isd['UTC']['YYYY'] + '-' + isd['UTC']['MM'] ]['COUNT']++
|
|
|
|
|
|
|
|
// Stats
|
|
|
|
|
|
|
|
// if (!os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM-DD'].hasOwnProperty(isd['UTC']['YYYY-MM-DD'])) {
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ] = {}
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ]['COUNT'] = 0
|
|
|
|
// os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS']['HOSTS']['INSTALL_DATE']['YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ]['COUNT']++
|
|
|
|
|
|
|
|
if ( !os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY-MM-DD'].hasOwnProperty(isd['UTC']['YYYY-MM-DD']) ) { |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ] = 0 |
|
|
|
} |
|
|
|
os_stats['HISTOGRAMS']['INSTALL_DATES_YYYY-MM-DD'][ isd['UTC']['YYYY-MM-DD'] ]++ |
|
|
|
|
|
|
|
|
|
|
|
if (!os_stats['HISTOGRAMS']['KERNEL'].hasOwnProperty(kernel_map [ index_data[h]['KERNEL'] ])) { |
|
|
|
os_stats['HISTOGRAMS']['KERNEL'][ kernel_map [ index_data[h]['KERNEL'] ] ] = 0 |
|
|
|
} |
|
|
|
os_stats['HISTOGRAMS']['KERNEL'][ kernel_map [ index_data[h]['KERNEL'] ] ]++ |
|
|
|
|
|
|
|
// if (!os_stats['OS'].hasOwnProperty(index_data[h]['OS'])) {
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ] = {}
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['COUNT'] = 0
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'] = {}
|
|
|
|
// os_stats['OS']['OS_INSTALL_DATE'] = {}
|
|
|
|
// os_stats['HISTOGRAMS']['OS'][ index_data[h]['OS'] ] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['COUNT']++
|
|
|
|
if (!os_stats['HISTOGRAMS']['OS'].hasOwnProperty(index_data[h]['OS'])) { |
|
|
|
os_stats['HISTOGRAMS']['OS'][ index_data[h]['OS'] ] = 0 |
|
|
|
} |
|
|
|
os_stats['HISTOGRAMS']['OS'][ index_data[h]['OS'] ]++ |
|
|
|
|
|
|
|
// if (!os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'].hasOwnProperty(index_data[h]['OS_VERSION'])) {
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ] = {}
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['COUNT'] = 0
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['ARCH'] = {}
|
|
|
|
// os_stats['HISTOGRAMS']['OS_VERSIONS'][ index_data[h]['OS'] + ' ' + index_data[h]['OS_VERSION'] ] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['COUNT']++
|
|
|
|
|
|
|
|
if (!os_stats['HISTOGRAMS']['OS_VERSIONS'].hasOwnProperty(index_data[h]['OS'] + ' ' + index_data[h]['OS_VERSION'])) { |
|
|
|
os_stats['HISTOGRAMS']['OS_VERSIONS'][ index_data[h]['OS'] + ' ' + index_data[h]['OS_VERSION'] ] = 0 |
|
|
|
} |
|
|
|
os_stats['HISTOGRAMS']['OS_VERSIONS'][ index_data[h]['OS'] + ' ' + index_data[h]['OS_VERSION'] ]++ |
|
|
|
|
|
|
|
|
|
|
|
// if (!os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['ARCH'].hasOwnProperty(index_data[h]['OS_ARCH'])) {
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['ARCH'][ index_data[h]['OS_ARCH'] ] = {}
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['ARCH'][ index_data[h]['OS_ARCH'] ]['COUNT'] = 0
|
|
|
|
// }
|
|
|
|
// os_stats['OS'][ index_data[h]['OS'] ]['VERSIONS'][ index_data[h]['OS_VERSION'] ]['ARCH'][ index_data[h]['OS_ARCH'] ]['COUNT']++
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
console.log(JSON.stringify(os_stats, null, 2)) |
|
|
|
|
|
|
|
// Save Data Files
|
|
|
|
// console.log(JSON.stringify(index_data, null, 2))
|
|
|
@ -442,6 +540,10 @@ fs.writeFileSync(sw_index_data_file, JSON.stringify(sw_index_data, null, 2), 'ut |
|
|
|
console.log('WRITING: ' + index_data_file.replace(/json$/, 'csv')) |
|
|
|
fs.writeFileSync(index_data_file.replace(/json$/, 'csv'), index_data_to_csv(index_keys, index_data), 'utf8') |
|
|
|
|
|
|
|
let stats_file = path.join(__dirname, 'itam-data', 'proc', 'stats.json') |
|
|
|
console.log('WRITING: ' + stats_file) |
|
|
|
fs.writeFileSync(stats_file, JSON.stringify(os_stats, null, 2), 'utf8') |
|
|
|
|
|
|
|
// Sikuliaq CSV Reports
|
|
|
|
console.log('WRITING: ' + path.join(__dirname, 'itam-data', 'reports', 'skq_appendix_d_hw.csv')) |
|
|
|
fs.writeFileSync(path.join(__dirname, 'itam-data', 'reports', 'skq_appendix_d_hw.csv'), skq_index_data_to_app_d_hw_csv(index_keys, index_data), 'utf8') |
|
|
@ -498,8 +600,8 @@ function skq_index_data_to_app_d_sw_csv(keys, data) { |
|
|
|
} |
|
|
|
|
|
|
|
for (amid in data) { |
|
|
|
console.log(amid) |
|
|
|
console.log(JSON.stringify(data[amid], null, 2)) |
|
|
|
// console.log(amid)
|
|
|
|
// console.log(JSON.stringify(data[amid], null, 2))
|
|
|
|
|
|
|
|
for (sw in data[amid]) { |
|
|
|
csv += '"' + amid + '",' |
|
|
|