From 191e64af54b5dffce9f9288045dca3317af19f8e Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 11 Feb 2019 09:13:48 +0200 Subject: Add remove-machine script --- doc/manual.cli | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/manual.cli b/doc/manual.cli index abccb8b..91dc68b 100644 --- a/doc/manual.cli +++ b/doc/manual.cli @@ -457,7 +457,7 @@ the \c{build2} toolchain inside. The \c{--} entries are the temporary snapshots of \c{-} created by \c{bbot} for building packages. -A machine can be added, upgraded, or deleted on a live Build OS instance. +A machine can be added, upgraded, or removed on a live Build OS instance. This needs to be done in a particular order to avoid inconsistencies and race conditions. @@ -493,6 +493,9 @@ build$ btrfs property set -ts linux-gcc_6-1.0 ro true build$ ln -s linux-gcc_6-1.0 linux-gcc_6-1 \ +\N|The \c{upload-machine} helper script implements this sequence of steps.| + + \h#machines-upgade|Upgrading a Machine| Continuing with the example started in the previous section, let's assume we @@ -526,43 +529,47 @@ build$ btrfs property set -ts linux-gcc_6-1.0 ro false build$ btrfs subvolume delete linux-gcc_6-1.0 \ -\h#machines-delete|Deleting a Machine| +\N|The \c{upload-machine} helper script implements this sequence of steps.| + +\h#machines-remove|Remove a Machine| Continuing with the example started in the previous section, let's assume we are no longer interested in the \c{linux-gcc_6} machine and would like to -delete it. This operation is complicated by the possibility of \c{bbot} +remove it. This operation is complicated by the possibility of \c{bbot} instances currently building with this machine. \ build$ cd /build/machines/default/linux-gcc_6 -# Delete the current machine symlink. +# Remove the current machine symlink. # build$ rm linux-gcc_6-1 # Wait for all the linux-gcc_6-- subvolumes # to disappear. # -build$ for d in linux-gcc_6-*-*; do \ +build$ for d in linux-gcc_6-*-*/; do \ while [ -d $d ]; do \ echo \"waiting for $d\" && \ sleep 10; \ done; \ done -# Delete the initial and bootstrapped machine subvolume(s). +# Remove the initial and bootstrapped machine subvolume(s). # -build$ for d in linux-gcc_6-*; do \ +build$ for d in linux-gcc_6-*/; do \ btrfs property set -ts $d ro false && \ btrfs subvolume delete $d; \ done -# Delete the machine directory. +# Remove the machine directory. # build$ cd .. build$ rmdir /build/machines/default/linux-gcc_6 \ +\N|The \c{remove-machine} helper script implements this sequence of steps.| + Note also that on reboot the Build OS monitor examines and cleans up machine directories of any stray subvolumes. As a result, an alternative approach would be to remove the current machine symlink and reboot the -- cgit v1.1