Commit Graph

20 Commits

Author SHA1 Message Date
68c32cadf3 Added the 'packages' disco ball that installs and removes packages for you from parameters. Minor fixups to disco-fs-diff. Fixed a bug in disco-ball where files would not get deleted, and .unionfs was rsynced back into /. 2012-08-23 19:39:07 -04:00
ab74e27bb8 Made the diff stat from inside the testfs, so new users/groups would stat correctly. Changed disco-ball fetch to fetch into the testfs, not into / (yikes!). New disco-ball command spin does what the main disco loop used to do for each module. Added the "users" disco ball to the standard library. 2012-08-23 00:16:22 -04:00
ef0a3488ae Minor fixups to disco-fs-diff 2012-08-19 15:21:51 -04:00
d70a3fd693 Modified disco-fs-diff to reduce the diff time more than 50% on average 2012-08-19 15:03:40 -04:00
292b5adb31 Removed disco-fs-fixup.py, not used anymore 2012-08-17 22:48:45 -04:00
5dbabc0e9f Moved the diff out of the internal report group, and made a diff report for each module, giving a much better idea of how long the diffs actually take 2012-08-17 22:46:47 -04:00
134ef11120 Added real life example to the README, minor fixups to disco and disco-fs-diff 2012-08-17 22:21:29 -04:00
4c6d422395 Added builtin performance metrics. Add REPORT=true to one of your disco dance runs to print the report at the end, or use 'disco report' to produce a report on the last disco dance; reports are cleared at the beginning of every disco dance.
_internal diff is for the time taken to produce the filesystem diff
_internal fetch_params is for how long it took to fetch all the client parameters

Currently these performance numbers only account for about 50-70% of disco's activity, not sure how to report on the rest yet.

Example output:

report: _internal: diff
report:    time_real 1.15 : time_user 0.21 : time_sys 0.92
report:    mem_avg 0 : mem_max 4816 : mem_faults_major 0 : mem_faults_minor 25400
report:    io_fsin 0 : io_fsout 16 : io_sockin 0 : io_sockout 0 : io_signals 0
report:    exit: 0
report: _internal: fetch_params
report:    time_real 1.14 : time_user 0.03 : time_sys 0.07
report:    mem_avg 0 : mem_max 11152 : mem_faults_major 0 : mem_faults_minor 1674
report:    io_fsin 0 : io_fsout 0 : io_sockin 0 : io_sockout 0 : io_signals 0
report:    exit: 0
report: othermodule-3.2: fetch
report:    time_real 2.27 : time_user 0.06 : time_sys 0.13
report:    mem_avg 0 : mem_max 11136 : mem_faults_major 0 : mem_faults_minor 2842
report:    io_fsin 0 : io_fsout 24 : io_sockin 0 : io_sockout 0 : io_signals 0
report:    exit: 0
report: othermodule-3.2: template
report:    etc/othermodule/stuff.cfg :
report:        time_real 0.53 : time_user 0.03 : time_sys 0.35
report:        mem_avg 0 : mem_max 4656 : mem_faults_major 119 : mem_faults_minor 5086
report:        io_fsin 25408 : io_fsout 16 : io_sockin 0 : io_sockout 0 : io_signals 0
report:        exit: 0
report: testmodule-1.0: exec
report:    00-hello.sh :
report:        time_real 0.29 : time_user 0.03 : time_sys 0.20
report:        mem_avg 0 : mem_max 4592 : mem_faults_major 54 : mem_faults_minor 3871
report:        io_fsin 10992 : io_fsout 8 : io_sockin 0 : io_sockout 0 : io_signals 0
report:        exit: 0
report:    10-service_stop.sh :
report:        time_real 0.46 : time_user 0.03 : time_sys 0.32
report:        mem_avg 0 : mem_max 4592 : mem_faults_major 110 : mem_faults_minor 4564
report:        io_fsin 22328 : io_fsout 8 : io_sockin 0 : io_sockout 0 : io_signals 0
report:        exit: 0
report: testmodule-1.0: fetch
report:    time_real 2.24 : time_user 0.05 : time_sys 0.13
report:    mem_avg 0 : mem_max 11152 : mem_faults_major 0 : mem_faults_minor 2894
report:    io_fsin 0 : io_fsout 24 : io_sockin 0 : io_sockout 0 : io_signals 0
report:    exit: 0
2012-08-17 20:46:57 -04:00
ebfd530ea6 Added reporting of file type, raw mode, device ID, and selinux context to file reporting, from stat. 2012-08-17 19:48:41 -04:00
3cfffd192e Moved disco colorization into a function, can be used standalone with "client/bin/disco colorize" on stdin.
Fixed disco-fs-diff to only use rsync, sed, grep, etc to produce the filesystem changelog, python script is gone

Minor fixups to other scripts
2012-08-17 19:24:25 -04:00
7d6d94ae3d Moved disco-ball to universe, added functions necessary for fetching, templating, and executing a given disco ball. Made all existing scripts aware of NOOP and how to change their DISCOROOT accordingly. Added skeleton restricted.d/* files for a semi-safe base system. Added disco-param that allows management of parameters on the client (currently isn't smart enough to manage them on the server, or per-module). Added client/bin/disco that actually allows the entire thing to come together and get executed. Still lots of bugs to work out. 2012-08-08 05:30:03 -04:00
f51124252e Got dual-mount of the noop/real filesystems working, made all apps aware of it, broke out the initialization logic into disco-fs-init so you can mount/unmount as much as you want, but the time consuming init process won't be repeated unless you ask 2012-08-07 10:33:29 -04:00
651b0c86d9 Moved disco-ball to server utils. 2012-08-07 08:10:59 -04:00
4be6014e7f Updated the README, added disco-param and disco-ball 2012-08-07 08:10:00 -04:00
22aa757238 Moved some stuff around, added the first unit test, with no instructions on how to run it; updated readme for NOOP explanation. 2012-08-06 19:27:55 -04:00
cea08e9d74 Got the initial restricted file list setup; some things are missing because they may expose a security hole, and they need a further, more detailed wrapper (like mount, find, etc etc), because they expose both harmless read-only, and extremely damaging write functions. 2012-08-06 18:28:07 -04:00
0f0f68a38d Added default wrappers for everything in the PATH for disco-fs-mount 2012-08-06 01:47:45 -04:00
c3fa89727d Made mounting/unmount of child /proc and /sys conditional for whether the host has them or not 2012-08-05 23:55:55 -04:00
7620cbab2e Added disco-fs-fixup.py - need to refactor this as a C program, DISCO should have no scripting language dependencies 2012-08-05 19:22:45 -04:00
1eafe5a220 Edited README, added initial client tools 2012-08-05 19:19:59 -04:00