Skip to content

Commit

Permalink
chore(postinst): Delete unnecessary postinst code
Browse files Browse the repository at this point in the history
  • Loading branch information
holmanb committed Jul 3, 2024
1 parent 1852ff0 commit 0ad031c
Showing 1 changed file with 1 addition and 192 deletions.
193 changes: 1 addition & 192 deletions debian/cloud-init.postinst
Original file line number Diff line number Diff line change
Expand Up @@ -109,22 +109,6 @@ for k in sys.argv[2:]:
db_unregister "cloud-init/maas-metadata-credentials" || :
}

handle_preseed_local_cloud_config() {
local ccfg="" debconf_name="cloud-init/local-cloud-config"
local cfg_file="/etc/cloud/cloud.cfg.d/90_dpkg_local_cloud_config.cfg"
local header="# written by cloud-init debian package per preseed entry
# $debconf_name"

db_get "${debconf_name}" && ccfg="$RET" || :

if [ "$ccfg" = "_" ]; then
rm -f "$cfg_file"
elif [ -n "$ccfg" ]; then
{ echo "$header"; echo "$ccfg"; } > "$cfg_file"
fi
db_unregister "${debconf_name}" || :
}

fix_1336855() {
### Begin fix for LP: 1336855
# fix issue where cloud-init misidentifies the location of grub and
Expand Down Expand Up @@ -200,165 +184,6 @@ fix_1336855() {

}

cleanup_lp1552999() {
local oldver="$1" last_bad_ver="0.7.7~bzr1178"
dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0
local edir="/etc/systemd/system/multi-user.target.wants"
rm -f "$edir/cloud-config.service" "$edir/cloud-final.service" \
"$edir/cloud-init-local.service" "$edir/cloud-init.service"
}

remove_deprecated_cloud_config_modules() {
local oldver="$1" last_bad_ver="22.1-14-g2e17a0d6-0ubuntu1~22.04.5"
if dpkg --compare-versions "$oldver" le "$last_bad_ver"; then
if grep -q emit_upstart /etc/cloud/cloud.cfg; then
# Redact emit_upstart if present in locally modified cloud.cfg:
# 1. "- emit_upstart" on a single line as defined in upstream
# 2. upstart_dir config which is no longer used
sed -i -e '/- emit_upstart/d' -e '/upstart_dir/d' /etc/cloud/cloud.cfg || true
if grep -q emit_upstart /etc/cloud/cloud.cfg; then
echo "DEPRECATION: unable to remove emit_upstart from /etc/cloud/cloud.cfg."
echo "This module is deprecated, you may remove it to eliminate warnings in cloud-init logs."
fi
fi
fi
}

disable_network_config_on_upgrade() {
local oldver="$1" last_without_net="0.7.7~bzr1182-0ubuntu1"
if [ ! -f /var/lib/cloud/instance/obj.pkl ]; then
# this is a fresh system not one that has been booted.
return 0
fi
if dpkg --compare-versions "$oldver" le "$last_without_net"; then
echo "dpkg upgrade from $oldver" > /var/lib/cloud/data/upgraded-network
fi
}

fix_azure_upgrade_1611074() {
# adjust /etc/fstab on azure so boot after resize does not mount
# /mnt as ntfs and stop re-formatting.
local fixed_ver="0.7.8-49-1" dspath="/var/lib/cloud/instance/datasource"
local oldver="$1" tmpf="" r="" wmsg="" me="cloud-init postinst"

# if not on azure, or not booted with instance/ skip out.
if [ ! -e "$dspath" ]; then
debug "no $dspath"
return 0
fi
if ! grep -qi azure "$dspath"; then
debug "not on azure per $dspath"
return 0
fi

# if there is no /etc/fstab, then nothing to fix.
if [ ! -e /etc/fstab ]; then
debug "no /etc/fstab"
return 0
fi

if dpkg --compare-versions "$oldver" ge "$fixed_ver"; then
debug "previous version was fixed"
return 0
fi

wmsg="WARN: $me failed."
wmsg="$wmsg Subsequent resize may not update ephemeral correctly."
tmpf=$(mktemp "${TMPDIR:-/tmp}/cloud-init-upgrade.XXXXXX") || {
echo "$wmsg (mktemp failed with $?)" 1>&2
return 0;
}

awk '{
if ($4 !~ /x-systemd.requires/ && $4 ~ /comment=cloudconfig/) {
sub(/comment=cloudconfig/, "x-systemd.requires=cloud-init.service,comment=cloudconfig")
}
printf("%s\n", $0)}' /etc/fstab > "$tmpf" || {
echo "$wmsg (awk reading of /etc/fstab failed with $?)" 1>&2
rm -f "$tmpf"
return 0;
}
if cmp /etc/fstab "$tmpf" >/dev/null 2>&1; then
debug "no changes needed."
else
cat "$tmpf" > /etc/fstab || {
r=$?
echo "$wmsg (cp $tmpf /etc/fstab failed with $r)"
echo ==== expected to write the following to /etc/fstab =====
cat "$tmpf"
echo ========================================================
return $r
} 1>&2
echo "$me fixed /etc/fstab for x-systemd.requires" 1>&2
fi
rm "$tmpf" || :
}

cleanup_ureadahead() {
local oldver="$1" last_bad_ver="0.7.9-243-ge74d775-0ubuntu2~"
dpkg --compare-versions "$oldver" le "$last_bad_ver" || return 0
dpkg-divert --package cloud-init --remove --rename --divert \
/etc/init/ureadahead.conf.disabled /etc/init/ureadahead.conf
}

fix_lp1889555() {
local oldver="$1" last_bad_ver="20.3-2-g371b392c-0ubuntu1"
dpkg --compare-versions "$oldver" le-nl "$last_bad_ver" || return 0

# if cloud-init's grub module did not run, then it did not break anything.
[ -f /var/lib/cloud/instance/sem/config_grub_dpkg ] || return 0

# Don't do anything unless we have grub
command -v grub-install > /dev/null || return 0

# Make sure that we are not chrooted.
[ "$(stat -c %d:%i /)" != "$(stat -c %d:%i /proc/1/root/.)" ] && return 0

# Check if we are in a container, i.e. LXC
if systemd-detect-virt --quiet --container || lxc-is-container 2>/dev/null; then
return 0
fi

# This bug only applies to NVMe devices
[ -e /dev/nvme0 ] || return 0

db_get grub-pc/install_devices && grub_cfg_dev=${RET} || return 0

# If the current setting is not the (potentially-incorrect) default we
# expect, this implies user intervention so leave things alone
[ "$grub_cfg_dev" = "/dev/sda" ] || return 0

correct_idev="$(python3 -c "import logging; from cloudinit.config.cc_grub_dpkg import fetch_idevs; print(fetch_idevs(logging.getLogger()))")" || return 0

# If correct_idev is the empty string, we failed to determine the correct
# install device; do nothing
[ -z "$correct_idev" ] && return 0

# If the correct_idev is already configured, do nothing
[ "$grub_cfg_dev" = "$correct_idev" ] && return 0

echo "Reconfiguring grub install device due to mismatch (LP: #1889555)"
echo " grub should use $correct_idev but is configured for $grub_cfg_dev"
db_set grub-pc/install_devices "$correct_idev"
db_set grub-pc/install_devices_empty "false"
}

change_cloud_init_output_log_permissions() {
# As a consequence of LP: #1918303
local oldver="$1" last_bad_ver="21.1-0ubuntu1"
dpkg --compare-versions "$oldver" le-nl "$last_bad_ver" || return 0

output_file="/var/log/cloud-init-output.log"
if [ -f "$output_file" ]; then
if getent group adm > /dev/null; then
chown root:adm $output_file
else
chown root $output_file
fi
chmod 640 $output_file
fi
}

rename_hook_hotplug_udev_rule() {
# Avoids LP: #1946003 see commit: b519d861aff8b44a0610c176cb34adcbe28df144
if [ -f /etc/udev/rules.d/10-cloud-init-hook-hotplug.rules ]; then
Expand All @@ -367,6 +192,7 @@ rename_hook_hotplug_udev_rule() {
fi
}


if [ "$1" = "configure" ]; then
if db_get cloud-init/datasources; then
values="$RET"
Expand All @@ -390,23 +216,6 @@ EOF
# fix issue where cloud-init misidentifies the location of grub
fix_1336855

# make upgrades disable network changes by cloud-init
disable_network_config_on_upgrade "$2"

remove_deprecated_cloud_config_modules "$2"

fix_azure_upgrade_1611074 "$2"

cleanup_ureadahead "$2"
fix_lp1889555 "$2"
change_cloud_init_output_log_permissions "$2"

rename_hook_hotplug_udev_rule
fi

#DEBHELPER#

if [ "$1" = "configure" ]; then
oldver="$2"
cleanup_lp1552999 "$oldver"
fi

0 comments on commit 0ad031c

Please sign in to comment.