}
func (m *monitor) Run() {
- if err := m.updateBootstrapNodes(); err != nil {
- log.Error(err)
- }
-
+ m.updateBootstrapNodes()
go m.discovery()
ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
for ; true; <-ticker.C {
}
// create or update: https://github.com/jinzhu/gorm/issues/1307
-func (m *monitor) updateBootstrapNodes() error {
+func (m *monitor) updateBootstrapNodes() {
for _, node := range m.cfg.Nodes {
ormNode := &orm.Node{
PubKey: node.PubKey.String(),
Host: node.Host,
Port: node.Port,
}
+
if err := m.db.Where(&orm.Node{PubKey: ormNode.PubKey}).
Assign(&orm.Node{
Alias: node.Alias,
Host: node.Host,
Port: node.Port,
}).FirstOrCreate(ormNode).Error; err != nil {
- return err
+ log.Error(err)
+ continue
}
}
-
- return nil
}
// TODO: