network and ACL initialization

This commit is contained in:
afeiszli 2022-09-13 15:41:23 -04:00
parent 88cd0a6497
commit 96772bb4bd
5 changed files with 41 additions and 6 deletions

View file

@ -475,6 +475,7 @@ func SetNodeDefaults(node *models.Node) {
node.SetDefaultIsK8S()
node.SetDefaultIsHub()
node.SetDefaultConnected()
node.SetDefaultACL()
}
// GetRecordKey - get record key

View file

@ -11,13 +11,18 @@ import (
// InitializeNetworkUsers - intializes network users for a given network
func InitializeNetworkUsers(network string) error {
newNetUserMap := make(promodels.NetworkUserMap)
netUserData, err := json.Marshal(newNetUserMap)
if err != nil {
return err
}
return database.Insert(network, string(netUserData), database.NETWORK_USER_TABLE_NAME)
_, err := database.FetchRecord(database.NETWORK_USER_TABLE_NAME, network)
if err != nil && database.IsEmptyRecord(err) {
newNetUserMap := make(promodels.NetworkUserMap)
netUserData, err := json.Marshal(newNetUserMap)
if err != nil {
return err
}
return database.Insert(network, string(netUserData), database.NETWORK_USER_TABLE_NAME)
}
return err
}
// GetNetworkUsers - gets the network users table

View file

@ -142,6 +142,13 @@ func (node *Node) SetDefaultConnected() {
}
}
// Node.SetDefaultACL
func (node *Node) SetDefaultACL() {
if node.DefaultACL == "" {
node.DefaultACL = "yes"
}
}
// Node.SetDefaultMTU - sets default MTU of a node
func (node *Node) SetDefaultMTU() {
if node.MTU == 0 {

View file

@ -24,6 +24,9 @@ func Join(cfg *config.ClientConfig, privateKey string) error {
// Do that before the Joining Network flow by performing the end point auth flow
// if performed successfully an access key is obtained from the server and then we
// proceed with the usual flow 'pretending' that user is feeded us with an access token
if len(cfg.Network) == 0 || cfg.Network == "all" {
return fmt.Errorf("no network provided. Specify network with \"-n <net name>\"")
}
logger.Log(1, "Logging into %s via:", cfg.Network, cfg.SsoServer)
err = functions.JoinViaSSo(cfg, privateKey)
if err != nil {

View file

@ -10,6 +10,7 @@ import (
"github.com/gravitl/netmaker/logic"
"github.com/gravitl/netmaker/logic/acls"
"github.com/gravitl/netmaker/logic/acls/nodeacls"
"github.com/gravitl/netmaker/logic/pro"
"github.com/gravitl/netmaker/netclient/ncutils"
"github.com/gravitl/netmaker/servercfg"
)
@ -89,6 +90,10 @@ func SetDefaults() error {
return err
}
if err := setNetworkDefaults(); err != nil {
return err
}
return nil
}
@ -111,3 +116,17 @@ func setNodeDefaults() error {
}
return nil
}
func setNetworkDefaults() error {
// upgraded systems will not have NetworkUsers's set, which is why we need this function
networks, err := logic.GetNetworks()
if err != nil && !database.IsEmptyRecord(err) {
return err
}
for _, net := range networks {
if err = pro.InitializeNetworkUsers(net.NetID); err != nil {
logger.Log(0, "could not initialize NetworkUsers on network ", net.NetID)
}
}
return nil
}