diff options
Diffstat (limited to 'debian/patches/cpick-c9c9197-mounts-use-mount-a-again-to-accomplish-mounts')
-rw-r--r-- | debian/patches/cpick-c9c9197-mounts-use-mount-a-again-to-accomplish-mounts | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/debian/patches/cpick-c9c9197-mounts-use-mount-a-again-to-accomplish-mounts b/debian/patches/cpick-c9c9197-mounts-use-mount-a-again-to-accomplish-mounts deleted file mode 100644 index 3dd0e3cb..00000000 --- a/debian/patches/cpick-c9c9197-mounts-use-mount-a-again-to-accomplish-mounts +++ /dev/null @@ -1,104 +0,0 @@ -From c9c9197a3210ac24a039a4096214150d0e8cebb8 Mon Sep 17 00:00:00 2001 -From: Scott Moser <smoser@ubuntu.com> -Date: Wed, 7 Dec 2016 09:44:41 +0100 -Subject: [PATCH] mounts: use mount -a again to accomplish mounts - -During recent changes to cc_mounts, on systemd systems, we started using - systemctl daemon-reload -rather than 'mount -a' to get mounts done. - -The belief was that since entries in /etc/fstab would be written -to tell systemd that they should be after cloud-init -(x-systemd.requires=cloud-init.service) that the reload would then -let systemd mount the units as expected. - -That doesn't seem to work, and new mount entries end up not getting -mounted. The change here moves back to using 'mount -a', but -then also does a systemctl daemon-reload. - -LP: #1647708 ---- - cloudinit/config/cc_mounts.py | 52 ++++++++++++++++++++++++++++--------------- - 1 file changed, 34 insertions(+), 18 deletions(-) - ---- a/cloudinit/config/cc_mounts.py -+++ b/cloudinit/config/cc_mounts.py -@@ -327,6 +327,8 @@ def handle(_name, cfg, cloud, log, _args - if "mounts" in cfg: - cfgmnt = cfg["mounts"] - -+ LOG.debug("mounts configuration is %s", cfgmnt) -+ - for i in range(len(cfgmnt)): - # skip something that wasn't a list - if not isinstance(cfgmnt[i], list): -@@ -423,37 +425,51 @@ def handle(_name, cfg, cloud, log, _args - cc_lines.append('\t'.join(line)) - - fstab_lines = [] -+ removed = [] - for line in util.load_file(FSTAB_PATH).splitlines(): - try: - toks = WS.split(line) - if toks[3].find(comment) != -1: -+ removed.append(line) - continue - except Exception: - pass - fstab_lines.append(line) - -+ for d in dirs: -+ try: -+ util.ensure_dir(d) -+ except Exception: -+ util.logexc(log, "Failed to make '%s' config-mount", d) -+ -+ sadds = [WS.sub(" ", n) for n in cc_lines] -+ sdrops = [WS.sub(" ", n) for n in removed] -+ -+ sops = (["- " + drop for drop in sdrops if drop not in sadds] + -+ ["+ " + add for add in sadds if add not in sdrops]) -+ - fstab_lines.extend(cc_lines) - contents = "%s\n" % ('\n'.join(fstab_lines)) - util.write_file(FSTAB_PATH, contents) - -+ activate_cmds = [] - if needswap: -- try: -- util.subp(("swapon", "-a")) -- except Exception: -- util.logexc(log, "Activating swap via 'swapon -a' failed") -+ activate_cmds.append(["swapon", "-a"]) - -- for d in dirs: -+ if len(sops) == 0: -+ log.debug("No changes to /etc/fstab made.") -+ else: -+ log.debug("Changes to fstab: %s", sops) -+ activate_cmds.append(["mount", "-a"]) -+ if uses_systemd: -+ activate_cmds.append(["systemctl", "daemon-reload"]) -+ -+ fmt = "Activating swap and mounts with: %s" -+ for cmd in activate_cmds: -+ fmt = "Activate mounts: %s:" + ' '.join(cmd) - try: -- util.ensure_dir(d) -- except Exception: -- util.logexc(log, "Failed to make '%s' config-mount", d) -- -- activate_cmd = ["mount", "-a"] -- if uses_systemd: -- activate_cmd = ["systemctl", "daemon-reload"] -- fmt = "Activate mounts: %s:" + ' '.join(activate_cmd) -- try: -- util.subp(activate_cmd) -- LOG.debug(fmt, "PASS") -- except util.ProcessExecutionError: -- util.logexc(log, fmt, "FAIL") -+ util.subp(cmd) -+ log.debug(fmt, "PASS") -+ except util.ProcessExecutionError: -+ log.warn(fmt, "FAIL") -+ util.logexc(log, fmt, "FAIL") |