diff --git a/plugins/app-json/Makefile b/plugins/app-json/Makefile index 916f4487c27..bf3adaa5543 100644 --- a/plugins/app-json/Makefile +++ b/plugins/app-json/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/report subcommands/set -TRIGGERS = triggers/app-json-process-deploy-parallelism triggers/install triggers/post-delete triggers/post-deploy triggers/pre-deploy triggers/report +TRIGGERS = triggers/app-json-process-deploy-parallelism triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/post-deploy triggers/pre-deploy triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = app-json diff --git a/plugins/app-json/src/triggers/triggers.go b/plugins/app-json/src/triggers/triggers.go index 1ffeb5c1539..e3a63e81e82 100644 --- a/plugins/app-json/src/triggers/triggers.go +++ b/plugins/app-json/src/triggers/triggers.go @@ -24,6 +24,14 @@ func main() { err = appjson.TriggerAppJSONProcessDeployParallelism(appName, processType) case "install": err = appjson.TriggerInstall() + case "post-app-clone-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = appjson.TriggerPostAppCloneSetup(oldAppName, newAppName) + case "post-app-rename-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = appjson.TriggerPostAppRenameSetup(oldAppName, newAppName) case "post-delete": appName := flag.Arg(0) err = appjson.TriggerPostDelete(appName) diff --git a/plugins/app-json/triggers.go b/plugins/app-json/triggers.go index 32e4a9cc324..d0b24039a1c 100644 --- a/plugins/app-json/triggers.go +++ b/plugins/app-json/triggers.go @@ -48,6 +48,29 @@ func TriggerInstall() error { return common.SetPermissions(directory, 0755) } +// TriggerPostAppCloneSetup creates new app-json files +func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { + err := common.PropertyClone("app-json", oldAppName, newAppName) + if err != nil { + return err + } + + return nil +} + +// TriggerPostAppRenameSetup renames app-json files +func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error { + if err := common.PropertyClone("app-json", oldAppName, newAppName); err != nil { + return err + } + + if err := common.PropertyDestroy("app-json", oldAppName); err != nil { + return err + } + + return nil +} + // TriggerPostDelete destroys the app-json data for a given app container func TriggerPostDelete(appName string) error { directory := filepath.Join(common.MustGetEnv("DOKKU_LIB_ROOT"), "data", "app-json", appName) diff --git a/plugins/builder-dockerfile/post-app-clone-setup b/plugins/builder-dockerfile/post-app-clone-setup new file mode 100755 index 00000000000..0da57ce1c3e --- /dev/null +++ b/plugins/builder-dockerfile/post-app-clone-setup @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +trigger-builder-dockerfile-post-app-clone-setup() { + declare desc="sets up properties for new app" + declare trigger="post-app-clone-setup" + declare OLD_APP="$1" NEW_APP="$2" + + fn-plugin-property-clone "builder-dockerfile" "$OLD_APP" "$NEW_APP" +} + +trigger-builder-dockerfile-post-app-clone-setup "$@" diff --git a/plugins/builder-dockerfile/post-app-rename-setup b/plugins/builder-dockerfile/post-app-rename-setup new file mode 100755 index 00000000000..c65baba3f77 --- /dev/null +++ b/plugins/builder-dockerfile/post-app-rename-setup @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +trigger-builder-dockerfile-post-app-rename-setup() { + declare desc="updates settings for new app" + declare trigger="post-app-rename-setup" + declare OLD_APP="$1" NEW_APP="$2" + + fn-plugin-property-clone "builder-dockerfile" "$OLD_APP" "$NEW_APP" + fn-plugin-property-destroy "builder-dockerfile" "$OLD_APP" +} + +trigger-builder-dockerfile-post-app-rename-setup "$@" diff --git a/plugins/builder-pack/post-app-clone-setup b/plugins/builder-pack/post-app-clone-setup new file mode 100755 index 00000000000..2290bd6b783 --- /dev/null +++ b/plugins/builder-pack/post-app-clone-setup @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +trigger-builder-pack-post-app-clone-setup() { + declare desc="sets up properties for new app" + declare trigger="post-app-clone-setup" + declare OLD_APP="$1" NEW_APP="$2" + + fn-plugin-property-clone "builder-pack" "$OLD_APP" "$NEW_APP" +} + +trigger-builder-pack-post-app-clone-setup "$@" diff --git a/plugins/builder-pack/post-app-rename-setup b/plugins/builder-pack/post-app-rename-setup new file mode 100755 index 00000000000..010af9e3ccb --- /dev/null +++ b/plugins/builder-pack/post-app-rename-setup @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" +set -eo pipefail +[[ $DOKKU_TRACE ]] && set -x + +trigger-builder-pack-post-app-rename-setup() { + declare desc="updates settings for new app" + declare trigger="post-app-rename-setup" + declare OLD_APP="$1" NEW_APP="$2" + + fn-plugin-property-clone "builder-pack" "$OLD_APP" "$NEW_APP" + fn-plugin-property-destroy "builder-pack" "$OLD_APP" +} + +trigger-builder-pack-post-app-rename-setup "$@" diff --git a/plugins/builder/Makefile b/plugins/builder/Makefile index 1f9b324dddc..b8a59862854 100644 --- a/plugins/builder/Makefile +++ b/plugins/builder/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/report subcommands/set -TRIGGERS = triggers/builder-detect triggers/core-post-extract triggers/install triggers/post-delete triggers/report +TRIGGERS = triggers/builder-detect triggers/core-post-extract triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = builder diff --git a/plugins/builder/src/triggers/triggers.go b/plugins/builder/src/triggers/triggers.go index 7a5fce4ed66..56c623a05cf 100644 --- a/plugins/builder/src/triggers/triggers.go +++ b/plugins/builder/src/triggers/triggers.go @@ -21,18 +21,26 @@ func main() { case "builder-detect": appName := flag.Arg(0) err = builder.TriggerBuilderDetect(appName) + case "core-post-extract": + appName := flag.Arg(0) + sourceWorkDir := flag.Arg(1) + err = builder.TriggerCorePostExtract(appName, sourceWorkDir) case "install": err = builder.TriggerInstall() + case "post-app-clone-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = builder.TriggerPostAppCloneSetup(oldAppName, newAppName) + case "post-app-rename-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = builder.TriggerPostAppRenameSetup(oldAppName, newAppName) case "post-delete": appName := flag.Arg(0) err = builder.TriggerPostDelete(appName) case "report": appName := flag.Arg(0) err = builder.ReportSingleApp(appName, "", "") - case "core-post-extract": - appName := flag.Arg(0) - sourceWorkDir := flag.Arg(1) - err = builder.TriggerCorePostExtract(appName, sourceWorkDir) default: err = fmt.Errorf("Invalid plugin trigger call: %s", trigger) } diff --git a/plugins/builder/triggers.go b/plugins/builder/triggers.go index b711f8a7c16..8a0b7f5af43 100644 --- a/plugins/builder/triggers.go +++ b/plugins/builder/triggers.go @@ -71,6 +71,29 @@ func TriggerInstall() error { return nil } +// TriggerPostAppCloneSetup creates new builder files +func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { + err := common.PropertyClone("builder", oldAppName, newAppName) + if err != nil { + return err + } + + return nil +} + +// TriggerPostAppRenameSetup renames builder files +func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error { + if err := common.PropertyClone("builder", oldAppName, newAppName); err != nil { + return err + } + + if err := common.PropertyDestroy("builder", oldAppName); err != nil { + return err + } + + return nil +} + // TriggerPostDelete destroys the builder property for a given app container func TriggerPostDelete(appName string) error { return common.PropertyDestroy("builder", appName) diff --git a/plugins/logs/Makefile b/plugins/logs/Makefile index eab1d71e3c5..a8eb7dde4d1 100644 --- a/plugins/logs/Makefile +++ b/plugins/logs/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/failed subcommands/report subcommands/set subcommands/vector-logs subcommands/vector-start subcommands/vector-stop -TRIGGERS = triggers/docker-args-process-deploy triggers/install triggers/logs-get-property triggers/post-delete triggers/report +TRIGGERS = triggers/docker-args-process-deploy triggers/install triggers/logs-get-property triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = logs diff --git a/plugins/logs/src/triggers/triggers.go b/plugins/logs/src/triggers/triggers.go index a4d35dc010d..b9b17be0d0c 100644 --- a/plugins/logs/src/triggers/triggers.go +++ b/plugins/logs/src/triggers/triggers.go @@ -27,6 +27,14 @@ func main() { appName := flag.Arg(0) property := flag.Arg(1) err = logs.TriggerLogsGetProperty(appName, property) + case "post-app-clone-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = logs.TriggerPostAppCloneSetup(oldAppName, newAppName) + case "post-app-rename-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = logs.TriggerPostAppRenameSetup(oldAppName, newAppName) case "post-delete": appName := flag.Arg(0) err = logs.TriggerPostDelete(appName) diff --git a/plugins/logs/triggers.go b/plugins/logs/triggers.go index f765311cfd1..b62a6541155 100644 --- a/plugins/logs/triggers.go +++ b/plugins/logs/triggers.go @@ -111,7 +111,30 @@ func TriggerLogsGetProperty(appName string, key string) error { return nil } -// TriggerPostDelete destroys the network property for a given app container +// TriggerPostAppCloneSetup creates new logs files +func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { + err := common.PropertyClone("logs", oldAppName, newAppName) + if err != nil { + return err + } + + return nil +} + +// TriggerPostAppRenameSetup renames logs files +func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error { + if err := common.PropertyClone("logs", oldAppName, newAppName); err != nil { + return err + } + + if err := common.PropertyDestroy("logs", oldAppName); err != nil { + return err + } + + return nil +} + +// TriggerPostDelete destroys the logs property for a given app container func TriggerPostDelete(appName string) error { return common.PropertyDestroy("logs", appName) } diff --git a/plugins/network/triggers.go b/plugins/network/triggers.go index a4310d23b22..2906c142831 100644 --- a/plugins/network/triggers.go +++ b/plugins/network/triggers.go @@ -255,12 +255,7 @@ func TriggerPostCreate(appName string) error { // TriggerPostDelete destroys the network property for a given app container func TriggerPostDelete(appName string) error { - err := common.PropertyDestroy("network", appName) - if err != nil { - return err - } - - return nil + return common.PropertyDestroy("network", appName) } // TriggerCorePostDeploy associates the container with a specified network diff --git a/plugins/nginx-vhosts/post-app-rename-setup b/plugins/nginx-vhosts/post-app-rename-setup index c7dad6cd674..3863aa1b4ca 100755 --- a/plugins/nginx-vhosts/post-app-rename-setup +++ b/plugins/nginx-vhosts/post-app-rename-setup @@ -1,7 +1,6 @@ #!/usr/bin/env bash set -eo pipefail [[ $DOKKU_TRACE ]] && set -x -source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions" source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions" source "$PLUGIN_AVAILABLE_PATH/nginx-vhosts/internal-functions" diff --git a/plugins/registry/Makefile b/plugins/registry/Makefile index 4953058e473..dc8ac2e7fad 100644 --- a/plugins/registry/Makefile +++ b/plugins/registry/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/login subcommands/report subcommands/set -TRIGGERS = triggers/deployed-app-image-repo triggers/deployed-app-image-tag triggers/deployed-app-repository triggers/install triggers/post-delete triggers/post-release-builder triggers/report +TRIGGERS = triggers/deployed-app-image-repo triggers/deployed-app-image-tag triggers/deployed-app-repository triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/post-release-builder triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = registry diff --git a/plugins/registry/src/triggers/triggers.go b/plugins/registry/src/triggers/triggers.go index 28d907ff6b4..3571aa15f89 100644 --- a/plugins/registry/src/triggers/triggers.go +++ b/plugins/registry/src/triggers/triggers.go @@ -29,6 +29,14 @@ func main() { err = registry.TriggerDeployedAppRepository(appName) case "install": err = registry.TriggerInstall() + case "post-app-clone-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = registry.TriggerPostAppCloneSetup(oldAppName, newAppName) + case "post-app-rename-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = registry.TriggerPostAppRenameSetup(oldAppName, newAppName) case "post-delete": appName := flag.Arg(0) err = registry.TriggerPostDelete(appName) diff --git a/plugins/registry/triggers.go b/plugins/registry/triggers.go index 7167c842120..ee358724a40 100644 --- a/plugins/registry/triggers.go +++ b/plugins/registry/triggers.go @@ -49,6 +49,29 @@ func TriggerInstall() error { return nil } +// TriggerPostAppCloneSetup creates new registry files +func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { + err := common.PropertyClone("registry", oldAppName, newAppName) + if err != nil { + return err + } + + return nil +} + +// TriggerPostAppRenameSetup renames registry files +func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error { + if err := common.PropertyClone("registry", oldAppName, newAppName); err != nil { + return err + } + + if err := common.PropertyDestroy("registry", oldAppName); err != nil { + return err + } + + return nil +} + // TriggerPostDelete destroys the registry property for a given app container func TriggerPostDelete(appName string) error { return common.PropertyDestroy("registry", appName) diff --git a/plugins/scheduler/Makefile b/plugins/scheduler/Makefile index 92c0389391d..39fbb01bc8d 100644 --- a/plugins/scheduler/Makefile +++ b/plugins/scheduler/Makefile @@ -1,5 +1,5 @@ SUBCOMMANDS = subcommands/report subcommands/set -TRIGGERS = triggers/scheduler-detect triggers/install triggers/post-delete triggers/report +TRIGGERS = triggers/scheduler-detect triggers/install triggers/post-app-clone-setup triggers/post-app-rename-setup triggers/post-delete triggers/report BUILD = commands subcommands triggers PLUGIN_NAME = scheduler diff --git a/plugins/scheduler/src/triggers/triggers.go b/plugins/scheduler/src/triggers/triggers.go index 76d70f5de0e..09a974399cc 100644 --- a/plugins/scheduler/src/triggers/triggers.go +++ b/plugins/scheduler/src/triggers/triggers.go @@ -18,17 +18,25 @@ func main() { var err error switch trigger { - case "scheduler-detect": - appName := flag.Arg(0) - err = scheduler.TriggerSchedulerDetect(appName) case "install": err = scheduler.TriggerInstall() + case "post-app-clone-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = scheduler.TriggerPostAppCloneSetup(oldAppName, newAppName) + case "post-app-rename-setup": + oldAppName := flag.Arg(0) + newAppName := flag.Arg(1) + err = scheduler.TriggerPostAppRenameSetup(oldAppName, newAppName) case "post-delete": appName := flag.Arg(0) err = scheduler.TriggerPostDelete(appName) case "report": appName := flag.Arg(0) err = scheduler.ReportSingleApp(appName, "", "") + case "scheduler-detect": + appName := flag.Arg(0) + err = scheduler.TriggerSchedulerDetect(appName) default: err = fmt.Errorf("Invalid plugin trigger call: %s", trigger) } diff --git a/plugins/scheduler/triggers.go b/plugins/scheduler/triggers.go index 554a2852451..6b8c76f3eb5 100644 --- a/plugins/scheduler/triggers.go +++ b/plugins/scheduler/triggers.go @@ -65,6 +65,29 @@ func TriggerInstall() error { return nil } +// TriggerPostAppCloneSetup creates new scheduler files +func TriggerPostAppCloneSetup(oldAppName string, newAppName string) error { + err := common.PropertyClone("scheduler", oldAppName, newAppName) + if err != nil { + return err + } + + return nil +} + +// TriggerPostAppRenameSetup renames scheduler files +func TriggerPostAppRenameSetup(oldAppName string, newAppName string) error { + if err := common.PropertyClone("scheduler", oldAppName, newAppName); err != nil { + return err + } + + if err := common.PropertyDestroy("scheduler", oldAppName); err != nil { + return err + } + + return nil +} + // TriggerPostDelete destroys the scheduler property for a given app container func TriggerPostDelete(appName string) error { return common.PropertyDestroy("scheduler", appName)