12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package logic
- import (
- "encoding/json"
- "github.com/gravitl/netmaker/database"
- "github.com/gravitl/netmaker/logger"
- "github.com/gravitl/netmaker/models"
- )
- // IsLegacyNode - checks if a node is legacy or not
- func IsLegacyNode(nodeID string) bool {
- record, err := database.FetchRecord(database.NODES_TABLE_NAME, nodeID)
- if err != nil {
- return false
- }
- var currentNode models.Node
- var legacyNode models.LegacyNode
- currentNodeErr := json.Unmarshal([]byte(record), ¤tNode)
- legacyNodeErr := json.Unmarshal([]byte(record), &legacyNode)
- return currentNodeErr != nil && legacyNodeErr == nil
- }
- // CheckAndRemoveLegacyNode - checks for legacy node and removes
- func CheckAndRemoveLegacyNode(nodeID string) bool {
- if IsLegacyNode(nodeID) {
- if err := database.DeleteRecord(database.NODES_TABLE_NAME, nodeID); err == nil {
- return true
- }
- }
- return false
- }
- // RemoveAllLegacyNodes - fetches all legacy nodes from DB and removes
- func RemoveAllLegacyNodes() error {
- records, err := database.FetchRecords(database.NODES_TABLE_NAME)
- if err != nil {
- return err
- }
- for k := range records {
- if CheckAndRemoveLegacyNode(k) {
- logger.Log(0, "removed legacy node", k)
- }
- }
- return nil
- }
|