From 95a855934c22dc53ccf55b2468dad8e1bb502566 Mon Sep 17 00:00:00 2001 From: Daijiro Fukuda Date: Wed, 26 Jul 2023 16:22:17 +0900 Subject: [PATCH] deb:rpm: migrate existing config as default config Signed-off-by: Daijiro Fukuda --- .../apt/systemd-test/update-from-v4.sh | 4 +++- .../fluent-package/deb/postinst | 20 +++++++++++++------ fluent-package/yum/fluent-package.spec.in | 20 ++++++++++++------- .../yum/systemd-test/update-from-v4.sh | 6 ++++-- 4 files changed, 34 insertions(+), 16 deletions(-) diff --git a/fluent-package/apt/systemd-test/update-from-v4.sh b/fluent-package/apt/systemd-test/update-from-v4.sh index a3924c2a8..6bbf850b4 100755 --- a/fluent-package/apt/systemd-test/update-from-v4.sh +++ b/fluent-package/apt/systemd-test/update-from-v4.sh @@ -36,7 +36,9 @@ systemctl status --no-pager td-agent systemctl status --no-pager fluentd # Test: config migration -test -L /etc/td-agent +test -h /etc/td-agent +test -h /etc/fluent/fluentd.conf +test $(readlink "/etc/fluent/fluentd.conf") = "/etc/fluent/td-agent.conf" test -e /etc/td-agent/td-agent.conf # Test: log file migration diff --git a/fluent-package/templates/package-scripts/fluent-package/deb/postinst b/fluent-package/templates/package-scripts/fluent-package/deb/postinst index e24980c11..4f3b8a0b1 100755 --- a/fluent-package/templates/package-scripts/fluent-package/deb/postinst +++ b/fluent-package/templates/package-scripts/fluent-package/deb/postinst @@ -66,15 +66,23 @@ migration_from_v4_main_process() { echo "Migrating from /etc/<%= compat_service_name %>/plugin/ to /etc/<%= package_dir %>/plugin/..." mv -f /etc/<%= compat_service_name %>/plugin/* /etc/<%= package_dir %>/plugin/ fi + create_link_for_config=n + if [ -f /etc/<%= compat_package_dir %>/<%= compat_service_name %>.conf -a ! -e /etc/<%= compat_package_dir %>/<%= service_name %>.conf ]; then + create_link_for_config=y + fi if [ -f /etc/<%= compat_package_dir %>/<%= compat_service_name %>.conf ]; then echo "Migrating from /etc/<%= compat_package_dir %>/<%= compat_service_name %>.conf to /etc/<%= package_dir %>/<%= compat_service_name %>.conf" cp -f /etc/<%= compat_package_dir %>/<%= compat_service_name %>.conf /etc/<%= package_dir %>/<%= compat_service_name %>.conf - for d in $(ls /etc/<%= compat_package_dir %>); do - if [ ! "$d" = "plugin" -a ! "$d" = "<%= compat_service_name %>.conf" ]; then - # except managed under deb files must be migrated - mv -f /etc/<%= compat_package_dir %>/$d /etc/<%= package_dir %>/ - fi - done + fi + for d in $(ls /etc/<%= compat_package_dir %>); do + if [ ! "$d" = "plugin" -a ! "$d" = "<%= compat_service_name %>.conf" ]; then + # except managed under deb files must be migrated + mv -f /etc/<%= compat_package_dir %>/$d /etc/<%= package_dir %>/ + fi + done + if [ $create_link_for_config = "y" ]; then + rm -f /etc/<%= package_dir %>/<%= service_name %>.conf + ln -sf /etc/<%= package_dir %>/<%= compat_service_name %>.conf /etc/<%= package_dir %>/<%= service_name %>.conf fi fi if [ -h /etc/systemd/system/td-agent.service ]; then diff --git a/fluent-package/yum/fluent-package.spec.in b/fluent-package/yum/fluent-package.spec.in index 13d7e1c90..49c3b6774 100644 --- a/fluent-package/yum/fluent-package.spec.in +++ b/fluent-package/yum/fluent-package.spec.in @@ -192,13 +192,19 @@ if [ $1 -eq 1 ]; then echo "Migrating from /etc/@COMPAT_PACKAGE_DIR@/plugin/ to /etc/@PACKAGE_DIR@/plugin/..." mv -f /etc/@COMPAT_PACKAGE_DIR@/plugin/* /etc/@PACKAGE_DIR@/plugin/ fi - if [ -f /etc/@COMPAT_PACKAGE_DIR@/@COMPAT_SERVICE_NAME@.conf ]; then - for d in /etc/@COMPAT_PACKAGE_DIR@/*; do - if [ ! "$d" == "/etc/@COMPAT_PACKAGE_DIR@/plugin" ]; then - echo "Migrating from $d to /etc/@PACKAGE_DIR@/..." - mv -f $d /etc/@PACKAGE_DIR@/ - fi - done + create_link_for_config=n + if [ -f /etc/@COMPAT_PACKAGE_DIR@/@COMPAT_SERVICE_NAME@.conf -a ! -e /etc/@COMPAT_PACKAGE_DIR@/@SERVICE_NAME@.conf ]; then + create_link_for_config=y + fi + for d in /etc/@COMPAT_PACKAGE_DIR@/*; do + if [ ! "$d" == "/etc/@COMPAT_PACKAGE_DIR@/plugin" ]; then + echo "Migrating from $d to /etc/@PACKAGE_DIR@/..." + mv -f $d /etc/@PACKAGE_DIR@/ + fi + done + if [ $create_link_for_config = "y" ]; then + rm -f /etc/@PACKAGE_DIR@/@SERVICE_NAME@.conf + ln -sf /etc/@PACKAGE_DIR@/@COMPAT_SERVICE_NAME@.conf /etc/@PACKAGE_DIR@/@SERVICE_NAME@.conf fi fi if systemctl is-active @COMPAT_SERVICE_NAME@; then diff --git a/fluent-package/yum/systemd-test/update-from-v4.sh b/fluent-package/yum/systemd-test/update-from-v4.sh index 188440ce4..fbc296ed9 100755 --- a/fluent-package/yum/systemd-test/update-from-v4.sh +++ b/fluent-package/yum/systemd-test/update-from-v4.sh @@ -44,11 +44,13 @@ sudo systemctl enable --now fluentd systemctl status --no-pager td-agent # Test: config migration -test -L /etc/td-agent +test -h /etc/td-agent +test -h /etc/fluent/fluentd.conf +test $(readlink "/etc/fluent/fluentd.conf") = "/etc/fluent/td-agent.conf" test -e /etc/td-agent/td-agent.conf # Test: log file migration -test -L /var/log/td-agent +test -h /var/log/td-agent test -e /var/log/td-agent/td-agent.log # Test: bin file migration