forked from haproxytech/dataplaneapi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfigure_data_plane_storage.go
More file actions
33 lines (30 loc) · 988 Bytes
/
configure_data_plane_storage.go
File metadata and controls
33 lines (30 loc) · 988 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package dataplaneapi
import (
"os"
"path/filepath"
client_native "github.com/haproxytech/client-native/v6"
native_misc "github.com/haproxytech/client-native/v6/misc"
"github.com/haproxytech/dataplaneapi/log"
)
func initDataplaneStorage(path string, client client_native.HAProxyClient) {
if path == "" {
return
}
if _, err := native_misc.CheckOrCreateWritableDirectory(path); err != nil {
log.Fatalf("error initializing dataplane internal storage: %v", err)
}
if _, err := os.Stat(filepath.Join(path, "logs.json")); err != nil && os.IsNotExist(err) {
generalStorage, storageErr := client.GeneralStorage()
if storageErr != nil {
log.Warningf("failed to get general storage: %v", storageErr)
return
}
src, _, getErr := generalStorage.Get("logs.json")
if getErr == nil {
dst := filepath.Join(path, "logs.json")
if err := os.Rename(src, dst); err != nil {
log.Warningf("Failed to move logs.json to dataplane internal storage: %v", err)
}
}
}
}