21 Commits

Author SHA1 Message Date
86b19b9743 Changed the requires file to take 'before' and 'after' parameters to declare forward and backward dependencies. Declaring 'before' will FORCE the listed module to be installed along with this one. See the docs. 2012-08-23 21:32:27 -04:00
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