mirror of
https://github.com/samuelncui/yatm.git
synced 2026-09-19 22:44:31 +00:00
feat: add export library
This commit is contained in:
@@ -1,38 +0,0 @@
|
||||
# domain used by user interface
|
||||
domain: http://127.0.0.1:8080
|
||||
# http service binding
|
||||
listen: 127.0.0.1:8080
|
||||
# debug port binding
|
||||
debug_listen: 127.0.0.1:8081
|
||||
|
||||
# database settings, you can use sqlite or mysql (untested)
|
||||
database:
|
||||
dialect: sqlite
|
||||
dsn: ./tapes.db
|
||||
|
||||
# usable tape drivers, must have sg device mapping.
|
||||
# use `sg_map` command (in sg3_utils package) to get corresponding device with sg device mapping.
|
||||
tape_devices:
|
||||
- /dev/tape/by-id/scsi-HUJ0000000
|
||||
|
||||
# working path settings
|
||||
paths:
|
||||
# to save logs and write reports
|
||||
work: ./
|
||||
# source in backup job creator
|
||||
source: ./
|
||||
# restore job target path
|
||||
target: ./
|
||||
|
||||
# those scripts interact with external software, you may need to change them for your use cases.
|
||||
scripts:
|
||||
# enable hardware encryption on tape driver
|
||||
encrypt: ./scripts/encrypt
|
||||
# format ltfs on lto tape, may need to be changed for different ltfs software.
|
||||
mkfs: ./scripts/mkfs
|
||||
# mount ltfs to specified path, may need to be changed for different ltfs software.
|
||||
mount: ./scripts/mount
|
||||
# umount ltfs path
|
||||
umount: ./scripts/umount
|
||||
# read tape barcode for restore jobs
|
||||
read_info: ./scripts/readinfo
|
||||
+3
-27
@@ -16,6 +16,7 @@ import (
|
||||
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
||||
"github.com/rifflock/lfshook"
|
||||
"github.com/samuelncui/yatm/apis"
|
||||
"github.com/samuelncui/yatm/config"
|
||||
"github.com/samuelncui/yatm/entity"
|
||||
"github.com/samuelncui/yatm/executor"
|
||||
"github.com/samuelncui/yatm/library"
|
||||
@@ -25,26 +26,10 @@ import (
|
||||
"google.golang.org/grpc"
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
type config struct {
|
||||
Domain string `yaml:"domain"`
|
||||
Listen string `yaml:"listen"`
|
||||
DebugListen string `yaml:"debug_listen"`
|
||||
|
||||
Database struct {
|
||||
Dialect string `yaml:"dialect"`
|
||||
DSN string `yaml:"dsn"`
|
||||
} `yaml:"database"`
|
||||
|
||||
Paths executor.Paths `yaml:"paths"`
|
||||
TapeDevices []string `yaml:"tape_devices"`
|
||||
Scripts executor.Scripts `yaml:"scripts"`
|
||||
}
|
||||
|
||||
var (
|
||||
configPath = flag.String("config", "./config.yaml", "config file path")
|
||||
configOpt = flag.String("config", "./config.yaml", "config file path")
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -66,16 +51,7 @@ func main() {
|
||||
))
|
||||
|
||||
flag.Parse()
|
||||
cf, err := os.Open(*configPath)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
conf := new(config)
|
||||
if err := yaml.NewDecoder(cf).Decode(conf); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
logrus.Infof("read config success, conf= '%+v'", conf)
|
||||
conf := config.GetConfig(*configOpt)
|
||||
|
||||
if conf.DebugListen != "" {
|
||||
go tools.Wrap(context.Background(), func() { tools.NewDebugServer(conf.DebugListen) })
|
||||
|
||||
Reference in New Issue
Block a user