mirror of
https://github.com/luscis/openlan.git
synced 2025-10-21 16:10:05 +08:00
fea:support add/del/save network (#55)
* fea:support add/del/save network
This commit is contained in:
@@ -2,6 +2,7 @@ package cswitch
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strconv"
|
||||
"strings"
|
||||
@@ -140,6 +141,46 @@ func (v *Switch) enablePort(protocol, port string) {
|
||||
})
|
||||
}
|
||||
|
||||
func (v *Switch) AddNetwork(network string) {
|
||||
for _, nCfg := range v.cfg.Network {
|
||||
name := nCfg.Name
|
||||
if name == network {
|
||||
w := NewNetworker(nCfg)
|
||||
v.worker[name] = w
|
||||
if w.Provider() != "vxlan" {
|
||||
w.Initialize()
|
||||
w.Start(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (v *Switch) DelNetwork(network string) {
|
||||
worker := v.worker[network]
|
||||
file := worker.Config().File
|
||||
if worker.Provider() != "vxlan" {
|
||||
worker.Stop()
|
||||
}
|
||||
cache.Network.Del(network)
|
||||
delete(v.worker, network)
|
||||
delete(v.cfg.Network, network)
|
||||
if err := os.Remove(file); err != nil {
|
||||
v.out.Error("Error removing file: %s, err: %s", file, err)
|
||||
}
|
||||
}
|
||||
|
||||
func (v *Switch) SaveNetwork(network string) {
|
||||
if network == "" {
|
||||
for _, obj := range v.cfg.Network {
|
||||
obj.Save()
|
||||
}
|
||||
} else {
|
||||
if obj := v.cfg.GetNetwork(network); obj != nil {
|
||||
obj.Save()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (v *Switch) preNetwork() {
|
||||
for _, nCfg := range v.cfg.Network {
|
||||
name := nCfg.Name
|
||||
|
Reference in New Issue
Block a user