* [pmg-devel] [PATCH pmg-api] postinst: migrate/update APT auth config
@ 2022-09-13 12:30 Fabian Grünbichler
2022-09-13 15:07 ` Stoiko Ivanov
0 siblings, 1 reply; 2+ messages in thread
From: Fabian Grünbichler @ 2022-09-13 12:30 UTC (permalink / raw)
To: pmg-devel
missed when switching over to Proxmox::RS::Subscription, which stores
the same info in the product-specific /etc/apt/auth.conf.d/pmg.conf .
the top-level file might contain non-PMG-managed entries, so only remove
entries matching "our" machine.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---
debian/postinst | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/debian/postinst b/debian/postinst
index fdcecbf..2fbb73f 100644
--- a/debian/postinst
+++ b/debian/postinst
@@ -19,6 +19,36 @@ ucf_register_templates() {
done
}
+migrate_apt_auth_conf() {
+ output=""
+ removed=""
+ match=0
+
+ while read l; do
+ if echo "$l" | grep -q "^machine enterprise.proxmox.com/debian/pmg"; then
+ match=1
+ elif echo "$l" | grep -q "machine"; then
+ match=0
+ fi
+
+ if test "$match" = "1"; then
+ removed="$removed\n$l"
+ else
+ output="$output\n$l"
+ fi
+ done < /etc/apt/auth.conf
+
+ if test -n "$removed"; then
+ if test ! -e /etc/apt/auth.conf.d/pmg.conf; then
+ echo "Migrating APT auth config for enterprise.proxmox.com to /etc/apt/auth.conf.d/pmg.conf .."
+ echo "$removed" > /etc/apt/auth.conf.d/pmg.conf
+ else
+ echo "Removing stale APT auth config from /etc/apt/auth.conf"
+ fi
+ echo "$output" > /etc/apt/auth.conf
+ fi
+}
+
case "$1" in
triggered)
@@ -81,6 +111,12 @@ case "$1" in
# rewrite banner
pmgbanner || true
fi
+
+ if test ! -e /proxmox_install_mode && test -n "$2" && dpkg --compare-versions "$2" 'lt' '7.1-7~'; then
+ if test -e /etc/apt/auth.conf ; then
+ migrate_apt_auth_conf
+ fi
+ fi
;;
abort-upgrade)
--
2.30.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [pmg-devel] [PATCH pmg-api] postinst: migrate/update APT auth config
2022-09-13 12:30 [pmg-devel] [PATCH pmg-api] postinst: migrate/update APT auth config Fabian Grünbichler
@ 2022-09-13 15:07 ` Stoiko Ivanov
0 siblings, 0 replies; 2+ messages in thread
From: Stoiko Ivanov @ 2022-09-13 15:07 UTC (permalink / raw)
To: Fabian Grünbichler; +Cc: pmg-devel
Thanks for the patch!
tested on a machine with /etc/apt/auth.conf.d/pmg.conf already present
(and copied over to /etc/apt/auth.conf)
this works as is - the only cosmetic issue (also mentioned in my reply to
the equivalent patch for pve-manager):
On Tue, 13 Sep 2022 14:30:06 +0200
Fabian Grünbichler <f.gruenbichler@proxmox.com> wrote:
> missed when switching over to Proxmox::RS::Subscription, which stores
> the same info in the product-specific /etc/apt/auth.conf.d/pmg.conf .
>
> the top-level file might contain non-PMG-managed entries, so only remove
> entries matching "our" machine.
>
> Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
> ---
> debian/postinst | 36 ++++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/debian/postinst b/debian/postinst
> index fdcecbf..2fbb73f 100644
> --- a/debian/postinst
> +++ b/debian/postinst
> @@ -19,6 +19,36 @@ ucf_register_templates() {
> done
> }
>
> +migrate_apt_auth_conf() {
> + output=""
> + removed=""
> + match=0
> +
> + while read l; do
> + if echo "$l" | grep -q "^machine enterprise.proxmox.com/debian/pmg"; then
> + match=1
> + elif echo "$l" | grep -q "machine"; then
> + match=0
> + fi
> +
> + if test "$match" = "1"; then
> + removed="$removed\n$l"
> + else
> + output="$output\n$l"
> + fi
> + done < /etc/apt/auth.conf
> +
> + if test -n "$removed"; then
> + if test ! -e /etc/apt/auth.conf.d/pmg.conf; then
> + echo "Migrating APT auth config for enterprise.proxmox.com to /etc/apt/auth.conf.d/pmg.conf .."
> + echo "$removed" > /etc/apt/auth.conf.d/pmg.conf
> + else
> + echo "Removing stale APT auth config from /etc/apt/auth.conf"
> + fi
> + echo "$output" > /etc/apt/auth.conf
this leaves an emtpy /etc/apt/auth.conf (tested on a pmg-install) if the
only auth.conf entry was the one for our hosts
(maybe `test -n "$output" && echo "$output" > /etc/apt/auth.conf`
also maybe printf might save you the trailing newline)
apart from that:
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
> + fi
> +}
> +
> case "$1" in
> triggered)
>
> @@ -81,6 +111,12 @@ case "$1" in
> # rewrite banner
> pmgbanner || true
> fi
> +
> + if test ! -e /proxmox_install_mode && test -n "$2" && dpkg --compare-versions "$2" 'lt' '7.1-7~'; then
> + if test -e /etc/apt/auth.conf ; then
> + migrate_apt_auth_conf
> + fi
> + fi
> ;;
>
> abort-upgrade)
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-09-13 15:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-13 12:30 [pmg-devel] [PATCH pmg-api] postinst: migrate/update APT auth config Fabian Grünbichler
2022-09-13 15:07 ` Stoiko Ivanov
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal