Firewall added & some fixes
This commit is contained in:
@@ -49,7 +49,9 @@ func HandleInterfaces(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
result := make([]iface, 0, len(names))
|
||||
existingNames := map[string]bool{}
|
||||
for _, name := range names {
|
||||
existingNames[name] = true
|
||||
s, err := network.GetInterfaceStats(name)
|
||||
if err != nil {
|
||||
continue
|
||||
@@ -61,6 +63,25 @@ func HandleInterfaces(w http.ResponseWriter, r *http.Request) {
|
||||
result = append(result, iface{s, hasPending})
|
||||
}
|
||||
|
||||
// Also include pending VLAN configs not yet present in the system.
|
||||
for name, cfg := range network.GetAllPending() {
|
||||
if existingNames[name] || !network.IsVLAN(name) {
|
||||
continue
|
||||
}
|
||||
s := &network.InterfaceStats{
|
||||
Name: name,
|
||||
State: "unknown",
|
||||
Mode: cfg.Mode,
|
||||
IPv6: []string{},
|
||||
}
|
||||
if cfg.Mode == "static" {
|
||||
s.IPv4 = cfg.Address
|
||||
s.IPv4Mask = cfg.Netmask
|
||||
s.Gateway = cfg.Gateway
|
||||
}
|
||||
result = append(result, iface{s, true})
|
||||
}
|
||||
|
||||
ok(w, result)
|
||||
}
|
||||
|
||||
@@ -100,6 +121,13 @@ func HandleInterfaceAction(w http.ResponseWriter, r *http.Request) {
|
||||
err = network.IfDown(name)
|
||||
case "restart":
|
||||
err = network.IfRestart(name)
|
||||
case "delete":
|
||||
if !network.IsVLAN(name) {
|
||||
fail(w, http.StatusBadRequest, "delete is only supported for VLAN interfaces")
|
||||
return
|
||||
}
|
||||
network.ClearPendingConfig(name)
|
||||
err = network.DeleteVLAN(name)
|
||||
default:
|
||||
fail(w, http.StatusBadRequest, "unknown action: "+action)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user