fea:support add/del/save network (#55)

* fea:support add/del/save network
This commit is contained in:
buliangjun
2024-04-08 22:48:23 +08:00
committed by GitHub
parent 0939850a6d
commit dfee4c956a
9 changed files with 273 additions and 79 deletions

View File

@@ -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