this sounds better although it does not fix anything
[bootcd.git] / ping-node.md
1 # Purpose
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
4
5
6 # Environment
7
8 ## the 'try this out several times' utility
9
10 * The utility sits in `git/tests/system`  
11
12 * you can push it onto a specific build using `make sync` as usual
13
14 * and then run it on the testmaster side like this
15
16   `iterate-ping-node -o run01 <nb_iterations>`
17
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
21
22 ## Easily redo a .iso
23
24 * select a running test in testmaster/; like e.g. one that has failed the `ping_node` step already
25
26 * you will need 2 local terminals with that
27   * one in `git/bootcd`
28   * one in `git/tests` 
29
30 * do the usual routine on running `exp`, exposing variables in both terminals,
31
32 * then run `make sync` from workdir `tests/system` (just for `iterate-ping-node`)
33
34 * and run `make sync-unwrap` from workdir bootcd
35
36 At that point there will be the following files and subdirs on the KVM host (in my case boxtops)
37
38 * the normal node bootCD iso, like e.g. 
39   * `vnode01.pl.sophia.inria.fr.iso` 
40 * a copy of that file, like e.g. 
41   * `vnode01.pl.sophia.inria.fr.iso.ref` 
42 * a read-only copy of the bootcd image in `bootcd.ref/`
43 * a writable version of this in `bootcd/`
44 * a read-only copy of the overlay image in `overlay.ref/`
45 * a writable version of this in `overlay/`
46
47 The workflow from then on is you can change the layout/contents of the bootcd/ directory, and then repeatedly run
48
49 * `make sync-rewrap` from the `bootcd/` workdir, and then
50 * `iterate-ping-node` from the `tests/` workdir
51
52 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`