all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [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