summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cloudinit/distros/bsd.py9
-rw-r--r--cloudinit/distros/freebsd.py1
2 files changed, 8 insertions, 2 deletions
diff --git a/cloudinit/distros/bsd.py b/cloudinit/distros/bsd.py
index e9b84edc..c58f897c 100644
--- a/cloudinit/distros/bsd.py
+++ b/cloudinit/distros/bsd.py
@@ -18,6 +18,9 @@ class BSD(distros.Distro):
group_add_cmd_prefix = []
pkg_cmd_install_prefix = []
pkg_cmd_remove_prefix = []
+ # There is no need to update the package cache on NetBSD and OpenBSD
+ # TODO neither freebsd nor netbsd handles a command 'upgrade'
+ pkg_cmd_update_prefix = None
def __init__(self, name, cfg, paths):
super().__init__(name, cfg, paths)
@@ -86,12 +89,14 @@ class BSD(distros.Distro):
if pkgs is None:
pkgs = []
- # TODO neither freebsd nor netbsd handles a command 'upgrade'
- # provided by cloudinit/config/cc_package_update_upgrade_install.py
if command == 'install':
cmd = self.pkg_cmd_install_prefix
elif command == 'remove':
cmd = self.pkg_cmd_remove_prefix
+ elif command == 'update':
+ if not self.pkg_cmd_update_prefix:
+ return
+ cmd = self.pkg_cmd_update_prefix
if args and isinstance(args, str):
cmd.append(args)
diff --git a/cloudinit/distros/freebsd.py b/cloudinit/distros/freebsd.py
index a775ae51..71a6195b 100644
--- a/cloudinit/distros/freebsd.py
+++ b/cloudinit/distros/freebsd.py
@@ -24,6 +24,7 @@ class Distro(cloudinit.distros.bsd.BSD):
group_add_cmd_prefix = ['pw', 'group', 'add']
pkg_cmd_install_prefix = ["pkg", "install"]
pkg_cmd_remove_prefix = ["pkg", "remove"]
+ pkg_cmd_update_prefix = ["pkg", "update"]
def _select_hostname(self, hostname, fqdn):
# Should be FQDN if available. See rc.conf(5) in FreeBSD