Browse Source

WIP OS Stats

v0.0.12
John Haverlack 3 years ago
parent
commit
bed880a5f9
  1. 112
      itam-data-analyzer.js
  2. 15
      package-lock.json
  3. 1
      package.json
  4. 2
      web/root/docs/versions.md

112
itam-data-analyzer.js

@ -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 + '",'

15
package-lock.json

@ -1,6 +1,6 @@
{
"name": "skq-it-am",
"version": "0.0.7",
"version": "0.0.11",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@ -625,6 +625,14 @@
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
"integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y="
},
"node-git-server": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/node-git-server/-/node-git-server-0.6.1.tgz",
"integrity": "sha512-dCWUlzD4j1p2SEp/Lm08a0YJgm9W3KFQbyZXPKmI4tY/TAPii5KT0dQmuLDbNAJFW4OJ4KrvRDdunt/D8zi9ew==",
"requires": {
"through": "^2.3.8"
}
},
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
@ -865,6 +873,11 @@
"readable-stream": "^3.1.1"
}
},
"through": {
"version": "2.3.8",
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",

1
package.json

@ -11,6 +11,7 @@
"ecstatic": "^4.1.4",
"express": "^4.17.1",
"is-admin": "^3.0.0",
"node-git-server": "^0.6.1",
"tar": "^6.1.0"
},
"devDependencies": {},

2
web/root/docs/versions.md

@ -1,6 +1,6 @@
## Change Log
- 0.0.12 2021-06-30 - HW and SW Statistics
- 0.0.12 2021-06-30 - HW and SW Statistics Report
- 0.0.11 2021-06-28 - Appendix D Software Report
- 0.0.10 2021-06-26 - Unique ID Bug Fixes
- 0.0.9 2021-06-24 - Legacy Mac Support

Loading…
Cancel
Save