summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Maw <jonathan.maw@codethink.co.uk>2013-05-10 16:44:51 +0000
committerJonathan Maw <jonathan.maw@codethink.co.uk>2013-05-13 10:14:59 +0100
commit4025d614bbb9faac17a53672c4bd19e69c74cb4b (patch)
tree75e30ea9a1f5834f4f2c6b679f0a4f2195f986ae
parent302f6ca1eb5e90704b645b186d97a22d44d9f938 (diff)
downloaddefinitions-4025d614bbb9faac17a53672c4bd19e69c74cb4b.tar.gz
Add 'state' dirs as btrfs subvolumes
These subvolumes exist in state/{home,opt,srv} of the disk's root. They are not mounted by default.
-rwxr-xr-xwriteexts.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/writeexts.py b/writeexts.py
index cb47f63d..49cd89dd 100755
--- a/writeexts.py
+++ b/writeexts.py
@@ -65,6 +65,7 @@ class WriteExtension(cliapp.Application):
version_label = 'version1'
version_root = os.path.join(mp, 'systems', version_label)
os.makedirs(version_root)
+ self.create_state(mp)
self.create_orig(version_root, temp_root)
self.create_fstab(version_root)
self.create_run(version_root)
@@ -117,6 +118,16 @@ class WriteExtension(cliapp.Application):
'''Parse RAM size from environment.'''
return self._parse_size_from_environment('RAM_SIZE', '1G')
+ def create_state(self, real_root):
+ '''Create the state subvolumes that are shared between versions'''
+
+ self.status(msg='Creating state subvolumes')
+ os.mkdir(os.path.join(real_root, 'state'))
+ statedirs = ['home', 'opt', 'srv']
+ for statedir in statedirs:
+ dirpath = os.path.join(real_root, 'state', statedir)
+ cliapp.runcmd(['btrfs', 'subvolume', 'create', dirpath])
+
def create_raw_disk_image(self, filename, size):
'''Create a raw disk image.'''