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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
/*
* Copyright (c) 2020. Ant Group. All rights reserved.
* Copyright (c) 2022. Nydus Developers. All rights reserved.
*
* SPDX-License-Identifier: Apache-2.0
*/
package daemon
import (
"os"
"path"
"path/filepath"
"github.com/pkg/errors"
"github.com/containerd/nydus-snapshotter/config"
"github.com/containerd/nydus-snapshotter/internal/constant"
)
// Build runtime nydusd daemon object, which might be persisted later
func WithSocketDir(dir string) NewDaemonOpt {
return func(d *Daemon) error {
s := filepath.Join(dir, d.ID())
// this may be failed, should handle that
if err := os.MkdirAll(s, 0755); err != nil {
return errors.Wrapf(err, "create socket dir %s", s)
}
d.States.APISocket = path.Join(s, "api.sock")
return nil
}
}
func WithRef(ref int32) NewDaemonOpt {
return func(d *Daemon) error {
d.ref = ref
return nil
}
}
func WithLogDir(dir string) NewDaemonOpt {
return func(d *Daemon) error {
if err := os.MkdirAll(dir, 0755); err != nil {
return errors.Wrapf(err, "create logging dir %s", dir)
}
d.States.LogDir = filepath.Join(dir, d.ID())
return nil
}
}
func WithLogToStdout(logToStdout bool) NewDaemonOpt {
return func(d *Daemon) error {
d.States.LogToStdout = logToStdout
return nil
}
}
func WithLogLevel(logLevel string) NewDaemonOpt {
return func(d *Daemon) error {
if logLevel == "" {
d.States.LogLevel = constant.DefaultLogLevel
} else {
d.States.LogLevel = logLevel
}
return nil
}
}
func WithLogRotationSize(logRotationSize int) NewDaemonOpt {
return func(d *Daemon) error {
d.States.LogRotationSize = logRotationSize
return nil
}
}
func WithConfigDir(dir string) NewDaemonOpt {
return func(d *Daemon) error {
s := filepath.Join(dir, d.ID())
// this may be failed, should handle that
if err := os.MkdirAll(s, 0755); err != nil {
return errors.Wrapf(err, "failed to create config dir %s", s)
}
d.States.ConfigDir = s
return nil
}
}
func WithMountpoint(mountpoint string) NewDaemonOpt {
return func(d *Daemon) error {
d.States.Mountpoint = mountpoint
return nil
}
}
func WithNydusdThreadNum(nydusdThreadNum int) NewDaemonOpt {
return func(d *Daemon) error {
d.States.ThreadNum = nydusdThreadNum
return nil
}
}
func WithFsDriver(fsDriver string) NewDaemonOpt {
return func(d *Daemon) error {
d.States.FsDriver = fsDriver
return nil
}
}
func WithDaemonMode(daemonMode config.DaemonMode) NewDaemonOpt {
return func(d *Daemon) error {
d.States.DaemonMode = daemonMode
return nil
}
}
|