| | |
| | | return nodes, nil |
| | | } |
| | | |
| | | func (n *Node) FindNodes() (nodes []Node, err error) { |
| | | if err = db.Raw("select * from cluster_node").Scan(&nodes).Error; err != nil { |
| | | return nil, err |
| | | } |
| | | return nodes, nil |
| | | } |
| | | |
| | | func (n *Node) FindFirstNode() (node Node, err error) { |
| | | if err = db.Raw("select * from cluster_node where isDelete=0 order by create_time limit 1").Scan(&node).Error; err != nil { |
| | | return node, err |
| | | } |
| | | return node, nil |
| | | } |
| | | |
| | | func (n *Node) UpdateDriftStateByNodeId(driftState string, nodeId string) bool { |
| | | var err error |
| | | tx := GetDB().Begin() |
| | |
| | | if err = tx.Exec("update "+n.TableName()+" set drift_state=? where id=?", driftState, nodeId).Error; err != nil { |
| | | return false |
| | | } |
| | | if err = tx.Exec("update "+n.TableName()+" set drift_state='backup' where id !=?", nodeId).Error; err != nil { |
| | | if err = tx.Exec("update "+n.TableName()+" set drift_state='slave' where id !=?", nodeId).Error; err != nil { |
| | | return false |
| | | } |
| | | } else { |