storj/multinode/console/node.go
crawter 126450f7dd multinode/database: nodes repository
Change-Id: I327afa1b4bde44f7c2f0d4df10a0792dd5c588a3
2020-10-14 12:46:17 +00:00

38 lines
1.2 KiB
Go

// Copyright (C) 2020 Storj Labs, Inc.
// See LICENSE for copying information.
package console
import (
"context"
"storj.io/common/storj"
)
// TODO: should this file be placed outside of console in nodes package?
// Nodes exposes needed by MND NodesDB functionality.
//
// architecture: Database
type Nodes interface {
// Add creates new node in NodesDB.
Add(ctx context.Context, id storj.NodeID, apiSecret []byte, publicAddress string) error
// GetByID return node from NodesDB by its id.
GetByID(ctx context.Context, id storj.NodeID) (Node, error)
// Remove removed node from NodesDB.
Remove(ctx context.Context, id storj.NodeID) error
}
// Node is a representation of storeganode, that SNO could add to the Multinode Dashboard.
type Node struct {
ID storj.NodeID
// APISecret is a secret issued by storagenode, that will be main auth mechanism in MND <-> SNO api. is a secret issued by storagenode, that will be main auth mechanism in MND <-> SNO api.
APISecret []byte
PublicAddress string
// Logo is a configurable icon.
Logo []byte
// Tag is configured by used and could be used to group nodes. // TODO: should node have multiple tags?
Tag string // TODO: create enum or type in future.
}