// UpdateEndnode updates EndnodeAddress for an existing end-node. func (m *DB) UpdateEndnode(newEA common.EndnodeAddress, caddr common.CloudAddress) (common.MapItem, error) { var item common.MapItem err := m.db.Update(func(tx *bolt.Tx) (err error) { //find mapItem with cloud address item, err = m.FindByCloudAddress(caddr) if err != nil { return err } //delete mapItem from bucket err = m.deleteMapItem(tx, item.Key()) if err != nil { return err } //insert mapItem with new endnode address item.EndnodeAddress = &newEA return m.putMapItem(tx, item) }) if err != nil { return common.MapItem{}, err } return item, nil }