Hi, I also would like to add the attached patch to the package. Indeed, when upgrading Neutron in non-interactive mode, annoyingly this may change the content of neutron.conf. With the added patch, this cannot happen anymore. Note that this has been included in the Sid package for quite some time, and that I've been using such a fix in production already, so it's been tested extensively.
Cheers, Thomas Goirand (zigo)
>From 2dda54a0519e9d17c0c2262a6701529c479031ce Mon Sep 17 00:00:00 2001 From: Thomas Goirand <[email protected]> Date: Mon, 14 Oct 2019 02:15:35 +0200 Subject: [PATCH 1340/1345] * Add the neccessary debconf stuff to stop modifying config files on upgrades. diff --git a/debian/neutron-common.config.in b/debian/neutron-common.config.in index f8f0d3b50b..99e010bff7 100644 --- a/debian/neutron-common.config.in +++ b/debian/neutron-common.config.in @@ -8,11 +8,19 @@ N_CONF=/etc/neutron/neutron.conf ML2_CONF=/etc/neutron/plugins/ml2/ml2_conf.ini read_nova_admin_credentials () { - pkgos_read_config -p high ${N_CONF} nova auth_url neutron/nova_auth_url - pkgos_read_config -p high ${N_CONF} nova region_name neutron/nova_region - pkgos_read_config -p medium ${N_CONF} nova project_name neutron/nova_service_project_name - pkgos_read_config -p medium ${N_CONF} nova username neutron/nova_service_username - pkgos_read_config -p high ${N_CONF} nova password neutron/nova_service_password + db_get neutron/configure_ksat + if [ "${RET}" = "true" ] ; then + db_input high neutron/configure_nova || true + db_go + db_get neutron/configure_nova + if [ "${RET}" = "true" ] ; then + pkgos_read_config -p high ${N_CONF} nova auth_url neutron/nova_auth_url + pkgos_read_config -p high ${N_CONF} nova region_name neutron/nova_region + pkgos_read_config -p medium ${N_CONF} nova project_name neutron/nova_service_project_name + pkgos_read_config -p medium ${N_CONF} nova username neutron/nova_service_username + pkgos_read_config -p high ${N_CONF} nova password neutron/nova_service_password + fi + fi } #PKGOS-INCLUDE# diff --git a/debian/neutron-common.postinst.in b/debian/neutron-common.postinst.in index a30ffff18f..f914a291bd 100755 --- a/debian/neutron-common.postinst.in +++ b/debian/neutron-common.postinst.in @@ -83,7 +83,10 @@ if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ] ; then su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron fi - write_nova_service_credentials + db_get neutron/configure_nova + if [ "${RET}" = "true" ] ; then + write_nova_service_credentials + fi db_stop # The /var/lib/neutron/dhcp needs to be readable from the nobody user. diff --git a/debian/neutron-common.templates.in b/debian/neutron-common.templates.in index df649181a6..0f19b3d6c8 100644 --- a/debian/neutron-common.templates.in +++ b/debian/neutron-common.templates.in @@ -7,6 +7,14 @@ # Even minor modifications require translation updates and such # changes should be coordinated with translators and reviewers. +Template: neutron/configure_nova +Type: boolean +Default: false +_Description: Manage nova config through debconf? + Neutron service must contact Nova, and this is configured through + the [nova] section of the configuration. Specify if you wish + to handle this configuration through debconf. + Template: neutron/nova_auth_url Type: string Default: http://127.0.0.1:5000 diff --git a/debian/neutron-metadata-agent.config.in b/debian/neutron-metadata-agent.config.in index 260ef3e28d..ccabc3843e 100644 --- a/debian/neutron-metadata-agent.config.in +++ b/debian/neutron-metadata-agent.config.in @@ -10,7 +10,13 @@ META_AGNT_CONF=/etc/neutron/metadata_agent.ini pkgos_var_user_group neutron chmod 755 /var/lib/neutron -pkgos_read_config -p high ${META_AGNT_CONF} DEFAULT metadata_proxy_shared_secret neutron-metadata/metadata_secret -pkgos_read_config -p high ${META_AGNT_CONF} DEFAULT nova_metadata_host neutron-metadata/nova_metadata_host + +db_input high neutron-metadata/configure || true +db_go +db_get neutron-metadata/configure +if [ "${RET}" = "true" ] ; then + pkgos_read_config -p high ${META_AGNT_CONF} DEFAULT metadata_proxy_shared_secret neutron-metadata/metadata_secret + pkgos_read_config -p high ${META_AGNT_CONF} DEFAULT nova_metadata_host neutron-metadata/nova_metadata_host +fi exit 0 diff --git a/debian/neutron-metadata-agent.postinst.in b/debian/neutron-metadata-agent.postinst.in index eb1f4c43d8..8615adbb26 100755 --- a/debian/neutron-metadata-agent.postinst.in +++ b/debian/neutron-metadata-agent.postinst.in @@ -21,7 +21,10 @@ if [ "${1}" = "configure" ] ; then if [ ! -e ${CONF_FILE} ] ; then install -D -m 0640 -o neutron -g neutron /usr/share/neutron-metadata-agent/metadata_agent.ini ${CONF_FILE} fi - manage_metadata_proxy_shared_secret + db_get neutron-metadata/configure + if [ "${RET}" = "true" ] ; then + manage_metadata_proxy_shared_secret + fi db_stop fi diff --git a/debian/neutron-metadata-agent.templates b/debian/neutron-metadata-agent.templates index 8addb39399..7dae916d57 100644 --- a/debian/neutron-metadata-agent.templates +++ b/debian/neutron-metadata-agent.templates @@ -7,6 +7,13 @@ # Even minor modifications require translation updates and such # changes should be coordinated with translators and reviewers. +Template: neutron-metadata/configure +Type: boolean +Default: false +_Description: Manage Neutron metadata config through debconf? + Neutron Metadata service must be configured to contact Nova. + Specify if you wish to handle this configuration through debconf. + Template: neutron-metadata/metadata_secret Type: password _Description: Metadata proxy shared secret: -- 2.20.1

