sshpiper/sshpiperd/upstream/database/plugin.go
2018-12-29 06:13:16 +00:00

54 lines
754 B
Go

package database
import (
"log"
"github.com/jinzhu/gorm"
upstreamprovider "github.com/tg123/sshpiper/sshpiperd/upstream"
)
var logger *log.Logger
type createdb interface {
create() (*gorm.DB, error)
}
type plugin struct {
createdb
db *gorm.DB
}
func (p *plugin) GetHandler() upstreamprovider.Handler {
return p.findUpstream
}
func (p *plugin) Init(glogger *log.Logger) error {
logger = glogger
db, err := p.create()
if err != nil {
return err
}
//db.LogMode(true)
db.AutoMigrate(
new(keydata),
new(privateKey),
new(hostKey),
new(server),
new(upstream),
new(authorizedKey),
new(downstream),
)
p.db = db
// plugin is alive within program lifecycle, close when unload added
// defer db.Close()
return nil
}