2 Let us try to shorten the devel loop when playing with changes to the bootcd internals.
3 And namely, the set of systemd files that describe booting off the CD image
8 ## the 'try this out several times' utility
10 * The utility sits in `git/tests/system`
12 * you can push it onto a specific build using `make sync` as usual
14 * and then run it on the testmaster side like this
16 `iterate-ping-node -o run01 <nb_iterations>`
18 * This allows to run a given bootcd (the iso computed for one node) several times over, and to gather all logs from qemu
19 * This is **only** restarting the kvm/qemu node several times, nothing is done to recompute the .iso itself (see below for that). So the game is to easily simulate how a change to `bootcd` would affect a node ISO without rebuilding the whole damn thing
20 * When -o is provided, the directory argument is created and all log files are stored in there
26 * select a running test in testmaster/; like e.g. one that has failed the `ping_node` step already
28 * you will need one local terminal in `git/bootcd`
30 * do the usual routine on running `exp`, exposing variables in this terminal
32 * and run `make sync-unwrap` from this workdir `bootcd`
34 At that point there will be the following files and subdirs on the KVM host (in my case boxtops)
36 * the normal node bootCD iso, like e.g.
37 * `vnode01.pl.sophia.inria.fr.iso`
38 * a copy of that file, like e.g.
39 * `vnode01.pl.sophia.inria.fr.iso.ref`
40 * a read-only copy of the bootcd image in `bootcd.ref/`
41 * a writable version of this in `bootcd/`
42 * a read-only copy of the overlay image in `overlay.ref/`
43 * a writable version of this in `overlay/`
47 The workflow from then on is you can
49 * change the layout/contents of the `bootcd/` directory on the KVM host
50 * either manually right in the KVM host, and/or with
51 * `make sync-push` if you want to rsync the contents of `initscripts/` and ` systemd/` workdirs onto KVM
52 * and then rewrap the ISO image and hammer on it, and for this you run
53 * `make sync-rewrap` from the `bootcd/` workdir, and then
54 * `iterate-ping-node` from the `tests/` workdir
56 Once you're satisfied you can make a difference between bootcd/ and bootcd.ref/ to see how the changes need to be implemented in `build.sh` and/or `prep.sh`