mirror of
https://github.com/gravitl/netmaker.git
synced 2025-11-03 11:02:11 +08:00
create default network on startup
This commit is contained in:
@@ -42,6 +42,9 @@ type ServerConfig struct {
|
||||
AllowedOrigin string `yaml:"allowedorigin"`
|
||||
RestBackend bool `yaml:"restbackend"`
|
||||
AgentBackend bool `yaml:"agentbackend"`
|
||||
DefaultNetName string `yaml:"defaultnetname"`
|
||||
DefaultNetRange string `yaml:"defaultnetrange"`
|
||||
CreateDefault bool `yaml:"createdefault"`
|
||||
}
|
||||
|
||||
type MongoConnConfig struct {
|
||||
|
||||
@@ -6,6 +6,9 @@ server:
|
||||
allowedorigin: "*"
|
||||
restbackend: true
|
||||
agentbackend: true
|
||||
defaultnetname: "default"
|
||||
defaultnetrange: "10.10.10.0/24"
|
||||
createdefault: true
|
||||
mongoconn:
|
||||
user: "mongoadmin"
|
||||
pass: "mongopass"
|
||||
|
||||
@@ -64,7 +64,7 @@ func GroupExists(name string) (bool, error) {
|
||||
|
||||
if err != nil {
|
||||
if err == mongo.ErrNoDocuments {
|
||||
return false, err
|
||||
return false, nil
|
||||
}
|
||||
fmt.Println("ERROR RETRIEVING GROUP!")
|
||||
fmt.Println(err)
|
||||
|
||||
46
main.go
46
main.go
@@ -34,6 +34,13 @@ func main() {
|
||||
log.Println("Server starting...")
|
||||
mongoconn.ConnectDatabase()
|
||||
|
||||
if config.Config.Server.CreateDefault {
|
||||
err := createDefaultNetwork()
|
||||
if err != nil {
|
||||
fmt.Printf("Error creating default network: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
var waitgroup sync.WaitGroup
|
||||
|
||||
if config.Config.Server.AgentBackend {
|
||||
@@ -165,6 +172,45 @@ func setGlobalConfig(globalconf models.GlobalConfig) (error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func createDefaultNetwork() error {
|
||||
|
||||
|
||||
exists, err := functions.GroupExists(config.Config.Server.DefaultNetName)
|
||||
|
||||
if exists || err != nil {
|
||||
fmt.Println("Default group already exists")
|
||||
fmt.Println("Skipping default group create")
|
||||
return err
|
||||
} else {
|
||||
|
||||
var group models.Group
|
||||
|
||||
group.NameID = config.Config.Server.DefaultNetName
|
||||
group.AddressRange = config.Config.Server.DefaultNetRange
|
||||
group.DisplayName = config.Config.Server.DefaultNetName
|
||||
group.SetDefaults()
|
||||
group.SetNodesLastModified()
|
||||
group.SetGroupLastModified()
|
||||
group.KeyUpdateTimeStamp = time.Now().Unix()
|
||||
|
||||
|
||||
fmt.Println("Creating default group.")
|
||||
|
||||
|
||||
collection := mongoconn.Client.Database("netmaker").Collection("groups")
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
|
||||
|
||||
|
||||
// insert our group into the group table
|
||||
_, err = collection.InsertOne(ctx, group)
|
||||
defer cancel()
|
||||
|
||||
}
|
||||
return err
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
func getPublicIP() (string, error) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user