connect.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package services
  2. import (
  3. "log"
  4. "xg_dba/api"
  5. "xg_dba/module/remote"
  6. "xg_dba/module/toml"
  7. )
  8. // 设置连接信息
  9. func SetConnectInfo_service(connectInfo api.ConnectInfoRequest, saveFilePath string) error {
  10. // 连接测试
  11. sshClient, err := remote.NewSSHClient(connectInfo.Id, connectInfo.Ssh.Username, connectInfo.Ssh.Password, connectInfo.Ssh.Host, connectInfo.Ssh.Port)
  12. if err != nil {
  13. log.Println("连接失败", err)
  14. return err
  15. }
  16. defer sshClient.Close()
  17. // 将connectInfo存储到本地
  18. //localPath := "./config/" + connectInfo.Ssh.Host + "/" + connectInfo.Ssh.Host + ".toml"
  19. if err := toml.CreateFileIfNotExists(saveFilePath); err != nil {
  20. log.Println("创建文件失败", err)
  21. return err
  22. }
  23. // 定义组和默认值
  24. groups := map[string]interface{}{
  25. "server": map[string]interface{}{
  26. "Ssh_Ip": connectInfo.Ssh.Host,
  27. "Ssh_Port": connectInfo.Ssh.Port,
  28. "Ssh_Username": connectInfo.Ssh.Username,
  29. "Ssh_Password": connectInfo.Ssh.Password,
  30. },
  31. "db": map[string]interface{}{
  32. "Db_Port": connectInfo.Db.Port,
  33. "Db_User": connectInfo.Db.User,
  34. "Db_Password": connectInfo.Db.Password,
  35. "Db_Database": connectInfo.Db.Database,
  36. },
  37. "system": map[string]interface{}{},
  38. }
  39. if err := toml.CreateTOMLGoups(saveFilePath, groups); err != nil {
  40. log.Println("创建文件失败", err)
  41. return err
  42. }
  43. return nil
  44. }