cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #01470
Re: [Merge] ~smoser/cloud-init:bug/1647708-azure-ephemeral2 into cloud-init:master
Diff comments:
> diff --git a/cloudinit/config/cc_mounts.py b/cloudinit/config/cc_mounts.py
> index 452c9e8..aa4e352 100644
> --- a/cloudinit/config/cc_mounts.py
> +++ b/cloudinit/config/cc_mounts.py
> @@ -423,37 +425,53 @@ 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)
>
> - fstab_lines.extend(cc_lines)
> - contents = "%s\n" % ('\n'.join(fstab_lines))
> - util.write_file(FSTAB_PATH, contents)
> -
> - if needswap:
> - try:
> - util.subp(("swapon", "-a"))
> - except Exception:
> - util.logexc(log, "Activating swap via 'swapon -a' failed")
> -
> for d in dirs:
> try:
> util.ensure_dir(d)
> except Exception:
> util.logexc(log, "Failed to make '%s' config-mount", d)
>
> - activate_cmd = ["mount", "-a"]
> + 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])
Are we generating a diff here? Would we update and write the new fstab to a tmpdir and just use diff ?
If not, then possibly move this to a helper func?
> +
> + if len(sops) == 0:
> + log.debug("No changes to /etc/fstab made.")
> + return True
> + else:
else isn't needed as you're returning above
> + log.debug("Changes to fstab: %s", sops)
> +
> + fstab_lines.extend(cc_lines)
> + contents = "%s\n" % ('\n'.join(fstab_lines))
> + util.write_file(FSTAB_PATH, contents)
> +
> + activate_cmds = []
> + if needswap:
> + activate_cmds.append(["swapon", "-a"])
> +
> + activate_cmds.append(["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")
> + activate_cmds.append(["systemctl", "daemon-reload"])
> +
> + fmt = "Activating mounts with: %s"
> + for cmd in activate_cmds:
> + fmt = "Activate mounts: %s:" + ' '.join(cmd)
> + try:
> + util.subp(cmd)
> + log.debug(fmt, "PASS")
> + except util.ProcessExecutionError:
> + log.warn(fmt, "FAIL")
> + util.logexc(log, fmt, "FAIL")
--
https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/312841
Your team cloud init development team is requested to review the proposed merge of ~smoser/cloud-init:bug/1647708-azure-ephemeral2 into cloud-init:master.
References