feat: add trigger for fetching logs properties
This commit is contained in:
@@ -59,7 +59,7 @@ dokku logs:failed --all
|
||||
|
||||
### Docker Log Retention
|
||||
|
||||
Docker log retention can be specified via the `logs:set` command by specifying a value for `max-size`. Log retention is set via injected docker options for all applications, but is also available via a trigger for alternative schedulers.
|
||||
Docker log retention can be specified via the `logs:set` command by specifying a value for `max-size`. Log retention is set via injected docker options for all applications, but is also available via the `logs-get-property` trigger for alternative schedulers.
|
||||
|
||||
```shell
|
||||
dokku logs:set node-js-app max-size 20m
|
||||
|
||||
@@ -699,6 +699,22 @@ if [[ ! -f "$DOKKU_ROOT/HOSTNAME" ]]; then
|
||||
fi
|
||||
```
|
||||
|
||||
### `logs-get-property`
|
||||
|
||||
- Description: Fetches a given logs property value
|
||||
- Invoked by:
|
||||
- Arguments: `$APP` `$PROPERTY`
|
||||
- Example:
|
||||
|
||||
```shell
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
APP="$1"; PROPERTY="$2"
|
||||
|
||||
# TODO
|
||||
```
|
||||
|
||||
### `network-build-config`
|
||||
|
||||
- Description: Rebuilds network configuration
|
||||
|
||||
@@ -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/post-delete triggers/report
|
||||
TRIGGERS = triggers/docker-args-process-deploy triggers/install triggers/logs-get-property triggers/post-delete triggers/report
|
||||
BUILD = commands subcommands triggers
|
||||
PLUGIN_NAME = logs
|
||||
|
||||
|
||||
@@ -23,6 +23,10 @@ func main() {
|
||||
err = logs.TriggerDockerArgsProcessDeploy(appName)
|
||||
case "install":
|
||||
err = logs.TriggerInstall()
|
||||
case "logs-get-property":
|
||||
appName := flag.Arg(0)
|
||||
property := flag.Arg(1)
|
||||
err = logs.TriggerLogsGetProperty(appName, property)
|
||||
case "post-delete":
|
||||
appName := flag.Arg(0)
|
||||
err = logs.TriggerPostDelete(appName)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package logs
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
@@ -56,6 +57,21 @@ func TriggerInstall() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// TriggerLogsGetProperty writes the logs key to stdout for a given app container
|
||||
func TriggerLogsGetProperty(appName string, key string) error {
|
||||
if key != "max-size" {
|
||||
return errors.New("Invalid logs property specified")
|
||||
}
|
||||
|
||||
value := common.PropertyGet("logs", appName, "max-size")
|
||||
if value == "" {
|
||||
value = common.PropertyGetDefault("logs", "--global", "max-size", MaxSize)
|
||||
}
|
||||
|
||||
fmt.Println(value)
|
||||
return nil
|
||||
}
|
||||
|
||||
// TriggerPostDelete destroys the network property for a given app container
|
||||
func TriggerPostDelete(appName string) error {
|
||||
return common.PropertyDestroy("logs", appName)
|
||||
|
||||
Reference in New Issue
Block a user