mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-13 08:34:44 +08:00
create default network on startup
This commit is contained in:
parent
536ebc2a66
commit
f61f6b1227
4 changed files with 53 additions and 1 deletions
|
@ -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) {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue