1 Star 0 Fork 0

infrastlabs / fk-container-web-tty

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
distribute.go 2.49 KB
一键复制 编辑 原始数据 按行查看 历史
headless 提交于 2021-04-01 18:46 . squash: 主机同步接口
package centerctl
import (
"database/sql"
"io/ioutil"
"path/filepath"
"strconv"
"time"
"gitee.com/infrastlabs/fk-container-web-tty/centerctl/asset"
"gitee.com/infrastlabs/fk-container-web-tty/centerctl/util"
"gitee.com/infrastlabs/fk-container-web-tty/centerctl/util/log"
"gitee.com/infrastlabs/fk-container-web-tty/route"
"gitee.com/infrastlabs/fk-sqliteweb/sdk"
"github.com/gin-gonic/gin"
)
func initData(db *sql.DB){
util.DBInit(db) //init table
//exec
/* util.DBExec(db, "INSERT INTO tb_host(host, port, user, pass, status, failcnt) values(?,?,?,?,?,?)",
"192.168.200.67", "22", "root", "Suntek123", "on", 0)
util.DBExec(db, "INSERT INTO tb_host(host, port, user, pass, status, failcnt) values(?,?,?,?,?,?)",
"192.168.200.68", "22", "root", "Suntek123", "on", 2)
util.DBExec(db, "INSERT INTO tb_host(host, port, user, pass, status, failcnt) values(?,?,?,?,?,?)",
"192.168.200.69", "22", "root", "Suntek123", "on", 3) */
}
func extractFile(){
filename:= "tty.tar.gz"
basePath:= "/tmp"
fileData, _ := asset.Asset("dist/" + filename) //"bash/bin/"+file
ioutil.WriteFile(filepath.Join(basePath, filename), fileData, 0755)
}
var db_centerDistribute *sql.DB
func centerDistribute(dbpath string, r *gin.Engine, prefix string, srv *route.Server) {
dbclient := sdk.InitDB(dbpath)
// dbclient.Exec()
// dbclient.MustBytes
// dbclient.Query()
db_centerDistribute= dbclient.GetDB().DB //.(sql.DB) //not interface, trans err.
initData(db_centerDistribute)
// util.DBExec(db_centerDistribute, "UPDATE tb_host SET failcnt=? where host=?", 311, "192.168.200.69")
// r:= gin.Default()
sdk.InitGinRoute(dbclient, r, prefix)
// go r.Run(":9003")
extractFile()
// doOne("192.168.200.69", 22, "root", "Suntek123")
go func(){
for{
// fmt.Println("loop-hello")
//qry
rows, _ := db_centerDistribute.Query("SELECT host, port, user, pass, failcnt FROM tb_host where status='on'")
defer rows.Close()
var addrs []string
for rows.Next() {
var host, port, user, pass string
var failcnt int
_ = rows.Scan(&host, &port, &user, &pass, &failcnt)
log.Info(host, port, user, pass, failcnt)
port2, _:= strconv.Atoi(port)
// go doOne(host, port2, user, pass)
installed:= util.InsAgent(host, port2, user, pass, srv)
if installed {
addr:= host+":8090"
addrs= append(addrs, addr)
// srv.ClientAdd(addr) //use srv.ClientSync.
}
}
//TODO: grpcMap: filterWithDBList, drop deleted mapItem.
srv.ClientSync(addrs)
time.Sleep(time.Second*10) //5s > 10s
}
}()
}
1
https://gitee.com/infrastlabs/fk-container-web-tty.git
git@gitee.com:infrastlabs/fk-container-web-tty.git
infrastlabs
fk-container-web-tty
fk-container-web-tty
v0.2.6

搜索帮助