nodeconfig.go 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package nodeconfig
  2. import (
  3. "github.com/gogf/gf/v2/database/gdb"
  4. "github.com/gogf/gf/v2/frame/g"
  5. "golang.org/x/net/context"
  6. "nodeMonitor/internal/dao"
  7. "nodeMonitor/internal/model"
  8. "nodeMonitor/internal/model/do"
  9. "nodeMonitor/internal/model/entity"
  10. "nodeMonitor/internal/service"
  11. )
  12. type (
  13. sNodeConfig struct{}
  14. )
  15. func init() {
  16. service.RegisterNodeConfig(New())
  17. }
  18. func New() *sNodeConfig {
  19. return &sNodeConfig{}
  20. }
  21. func (c *sNodeConfig) GetAll(ctx context.Context) (nodeConfig []*model.NodeConfigItem, err error) {
  22. var node []*model.NodeConfigItem
  23. err = dao.Node.Ctx(ctx).OrderDesc("create_at").ScanList(&node, "Node")
  24. if err != nil {
  25. return nil, err
  26. }
  27. err = dao.Nodeconfig.Ctx(ctx).Where("serverid", gdb.ListItemValuesUnique(node, "Node", "Id")).ScanList(&node, "NodeConfig", "Node", "serverid=id")
  28. if err != nil {
  29. return nil, err
  30. }
  31. nodeConfig = node
  32. return
  33. }
  34. // Get 获取节点配置
  35. func (c *sNodeConfig) Get(ctx context.Context, id int) (nodeConfig *entity.Nodeconfig, err error) {
  36. var node = new(entity.Nodeconfig)
  37. err = dao.Nodeconfig.Ctx(ctx).Where("serverid", id).Scan(&node)
  38. nodeConfig = node
  39. return
  40. }
  41. // Create 创建节点配置
  42. func (c *sNodeConfig) Create(ctx context.Context, input model.NodeConfigAndEditCreateInput) error {
  43. return dao.Nodeconfig.Transaction(ctx, func(ctx context.Context, tx gdb.TX) error {
  44. _, err := dao.Nodeconfig.Ctx(ctx).Data(do.Nodeconfig{
  45. Serverid: input.ServerId,
  46. Sshcommand: input.SshCom,
  47. Sshpassword: input.SshPass,
  48. Sshusername: input.SshUser,
  49. }).Insert()
  50. return err
  51. })
  52. }
  53. // Edit 编辑节点配置
  54. func (c *sNodeConfig) Edit(ctx context.Context, input model.NodeConfigAndEditCreateInput) error {
  55. _, err := dao.Nodeconfig.Ctx(ctx).Where("serverid", input.ServerId).Update(g.Map{
  56. "sshcommand": input.SshCom,
  57. "sshpassword": input.SshPass,
  58. "sshusername": input.SshUser,
  59. })
  60. return err
  61. }
  62. // IsExist 节点是否存在
  63. func (c *sNodeConfig) IsExist(ctx context.Context, serverid int) (bool, error) {
  64. count, err := dao.Nodeconfig.Ctx(ctx).Where(g.Map{
  65. "serverid": serverid,
  66. }).Count()
  67. if err != nil {
  68. return false, err
  69. }
  70. return count == 0, nil
  71. }
  72. // Delete 节点是否存在
  73. func (c *sNodeConfig) Delete(ctx context.Context, serverid int) error {
  74. _, err := dao.Nodeconfig.Ctx(ctx).Where(g.Map{
  75. "serverid": serverid,
  76. }).Delete()
  77. return err
  78. }