From b80c0bf5c20b7607e52beedf54c3ae02e0406e7d Mon Sep 17 00:00:00 2001 From: Scott Moser Date: Wed, 3 Apr 2013 16:06:43 -0500 Subject: [PATCH] invoke 'dist-upgrade' instead of 'upgrade' on for upgrades. In general, dist-upgrade is the correct behavior here. It will get a new kernel, though, which could be annoying. So, allow a way to turn it off (by setting 'apt_get_upgrade_subcommand: upgrade'). --- cloudinit/distros/debian.py | 8 +++++++- doc/examples/cloud-config.txt | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py index 4b779d57..a1e28ad5 100644 --- a/cloudinit/distros/debian.py +++ b/cloudinit/distros/debian.py @@ -161,7 +161,13 @@ class Distro(distros.Distro): elif args and isinstance(args, list): cmd.extend(args) - cmd.append(command) + + subcmd = command + if command == "upgrade": + subcmd = self.get_option("apt_get_upgrade_subcommand", + "dist-upgrade") + + cmd.append(subcmd) pkglist = util.expand_package_list('%s=%s', pkgs) cmd.extend(pkglist) diff --git a/doc/examples/cloud-config.txt b/doc/examples/cloud-config.txt index 09298655..b8abb67a 100644 --- a/doc/examples/cloud-config.txt +++ b/doc/examples/cloud-config.txt @@ -125,6 +125,19 @@ apt_sources: =Y2oI -----END PGP PUBLIC KEY BLOCK----- +# apt_get_command: [command, argument, argument] +# Specify a different 'apt-get' command. must be a list. subcommands are +# appended to it. default is: +# ['apt-get', '--option=Dpkg::Options::=--force-confold', +# '--option=Dpkg::options::=--force-unsafe-io', '--assume-yes', '--quiet'] +# +# apt_get_upgrade_subcommand: +# Specify a different 'apt-get upgrade' subcommand. when 'apt_upgrade' or +# package_upgrade is set to true above, then this subcommand will be invoked. +# default is 'dist-upgrade'. For example, you could set this to 'upgrade'. +apt_get_upgrade_subcommand: dist-upgrade + + # Install additional packages on first boot # # Default: none