|
|
|
package client
|
|
|
|
|
|
|
|
import (
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
"github.com/1Panel-dev/1Panel/backend/utils/common"
|
|
|
|
)
|
|
|
|
|
|
|
|
type DBInfo struct {
|
|
|
|
From string `json:"from"`
|
|
|
|
Database string `json:"database"`
|
|
|
|
Address string `json:"address"`
|
|
|
|
Port uint `json:"port"`
|
|
|
|
Username string `json:"userName"`
|
|
|
|
Password string `json:"password"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type CreateInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Format string `json:"format"`
|
|
|
|
Version string `json:"version"`
|
|
|
|
Username string `json:"userName"`
|
|
|
|
Password string `json:"password"`
|
|
|
|
Permission string `json:"permission"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type DeleteInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Version string `json:"version"`
|
|
|
|
Username string `json:"userName"`
|
|
|
|
Permission string `json:"permission"`
|
|
|
|
|
|
|
|
ForceDelete bool `json:"forceDelete"`
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type PasswordChangeInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Version string `json:"version"`
|
|
|
|
Username string `json:"userName"`
|
|
|
|
Password string `json:"password"`
|
|
|
|
Permission string `json:"permission"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type AccessChangeInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Version string `json:"version"`
|
|
|
|
Username string `json:"userName"`
|
|
|
|
Password string `json:"password"`
|
|
|
|
OldPermission string `json:"oldPermission"`
|
|
|
|
Permission string `json:"permission"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type BackupInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Format string `json:"format"`
|
|
|
|
TargetDir string `json:"targetDir"`
|
|
|
|
FileName string `json:"fileName"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type RecoverInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
Format string `json:"format"`
|
|
|
|
SourceFile string `json:"sourceFile"`
|
|
|
|
|
|
|
|
Timeout uint `json:"timeout"` // second
|
|
|
|
}
|
|
|
|
|
|
|
|
type SyncDBInfo struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
From string `json:"from"`
|
|
|
|
MysqlName string `json:"mysqlName"`
|
|
|
|
Format string `json:"format"`
|
|
|
|
Username string `json:"username"`
|
|
|
|
Password string `json:"password"`
|
|
|
|
Permission string `json:"permission"`
|
|
|
|
}
|
|
|
|
|
|
|
|
var formatMap = map[string]string{
|
|
|
|
"utf8": "utf8_general_ci",
|
|
|
|
"utf8mb4": "utf8mb4_general_ci",
|
|
|
|
"gbk": "gbk_chinese_ci",
|
|
|
|
"big5": "big5_chinese_ci",
|
|
|
|
}
|
|
|
|
|
|
|
|
func loadNameByDB(name, version string) string {
|
|
|
|
nameItem := common.ConvertToPinyin(name)
|
|
|
|
if strings.HasPrefix(version, "5.6") {
|
|
|
|
if len(nameItem) <= 16 {
|
|
|
|
return nameItem
|
|
|
|
}
|
|
|
|
return strings.TrimSuffix(nameItem[:10], "_") + "_" + common.RandStr(5)
|
|
|
|
}
|
|
|
|
if len(nameItem) <= 32 {
|
|
|
|
return nameItem
|
|
|
|
}
|
|
|
|
return strings.TrimSuffix(nameItem[:25], "_") + "_" + common.RandStr(5)
|
|
|
|
}
|
|
|
|
|
|
|
|
func randomPassword(user string) string {
|
|
|
|
passwdItem := user
|
|
|
|
if len(user) > 6 {
|
|
|
|
passwdItem = user[:6]
|
|
|
|
}
|
|
|
|
return passwdItem + "@" + common.RandStrAndNum(8)
|
|
|
|
}
|