From af84293c3e2d1ac326dc1e43230372713fcf1508 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 28 Jan 2023 15:50:31 -0500 Subject: [PATCH] fix: ensure we migrate data for all golang plugins --- plugins/app-json/triggers.go | 4 ++-- plugins/common/data.go | 9 +++++++++ plugins/logs/triggers.go | 4 ++-- plugins/ps/triggers.go | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/plugins/app-json/triggers.go b/plugins/app-json/triggers.go index f2f90a71d..558daaf75 100644 --- a/plugins/app-json/triggers.go +++ b/plugins/app-json/triggers.go @@ -139,7 +139,7 @@ func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { // TriggerPostAppRename removes the old app data func TriggerPostAppRename(oldAppName string, newAppName string) error { - return common.RemoveAppDataDirectory("app-json", oldAppName) + return common.MigrateAppDataDirectory("app-json", oldAppName, newAppName) } // TriggerPostAppRenameSetup renames app-json files @@ -162,7 +162,7 @@ func TriggerPostCreate(appName string) error { // TriggerPostDelete destroys the app-json data for a given app container func TriggerPostDelete(appName string) error { - dataErr := os.RemoveAll(common.GetAppDataDirectory("app-json", appName)) + dataErr := common.RemoveAppDataDirectory("app-json", appName) propertyErr := common.PropertyDestroy("app-json", appName) if dataErr != nil { diff --git a/plugins/common/data.go b/plugins/common/data.go index 409018c78..8aaf86a2a 100644 --- a/plugins/common/data.go +++ b/plugins/common/data.go @@ -46,6 +46,15 @@ func GetDataDirectory(pluginName string) string { return filepath.Join(MustGetEnv("DOKKU_LIB_ROOT"), "data", pluginName) } +// MigrateAppDataDirectory migrates the data directory for one app to another +func MigrateAppDataDirectory(pluginName string, oldAppName string, newAppName string) error { + if err := CloneAppData(pluginName, oldAppName, newAppName); err != nil { + return err + } + + return RemoveAppDataDirectory(pluginName, oldAppName) +} + // RemoveAppDataDirectory removes the path to the data directory for the given plugin/app combination func RemoveAppDataDirectory(pluginName, appName string) error { return os.RemoveAll(GetAppDataDirectory(pluginName, appName)) diff --git a/plugins/logs/triggers.go b/plugins/logs/triggers.go index 870ce29c6..649806740 100644 --- a/plugins/logs/triggers.go +++ b/plugins/logs/triggers.go @@ -118,7 +118,7 @@ func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { // TriggerPostAppRename removes the old app data func TriggerPostAppRename(oldAppName string, newAppName string) error { - return common.RemoveAppDataDirectory("logs", oldAppName) + return common.MigrateAppDataDirectory("logs", oldAppName, newAppName) } // TriggerPostAppRenameSetup renames logs files @@ -141,7 +141,7 @@ func TriggerPostCreate(appName string) error { // TriggerPostDelete destroys the logs property for a given app container func TriggerPostDelete(appName string) error { - dataErr := os.RemoveAll(common.GetAppDataDirectory("logs", appName)) + dataErr := common.RemoveAppDataDirectory("logs", appName) propertyErr := common.PropertyDestroy("logs", appName) if dataErr != nil { diff --git a/plugins/ps/triggers.go b/plugins/ps/triggers.go index 6218011e1..160274d22 100644 --- a/plugins/ps/triggers.go +++ b/plugins/ps/triggers.go @@ -182,7 +182,7 @@ func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { // TriggerPostAppRename rebuilds the renamed app func TriggerPostAppRename(oldAppName string, newAppName string) error { - if err := common.RemoveAppDataDirectory("ps", oldAppName); err != nil { + if err := common.MigrateAppDataDirectory("ps", oldAppName, newAppName); err != nil { return err }