Files
EdgeNode/internal/iplibrary/action_ipset_test.go

124 lines
2.6 KiB
Go
Raw Normal View History

2022-03-16 20:47:55 +08:00
package iplibrary_test
2021-02-06 17:34:33 +08:00
import (
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/firewallconfigs"
2022-03-16 20:47:55 +08:00
"github.com/TeaOSLab/EdgeNode/internal/iplibrary"
2024-01-21 11:13:30 +08:00
executils "github.com/TeaOSLab/EdgeNode/internal/utils/exec"
2021-02-06 17:34:33 +08:00
"github.com/iwind/TeaGo/maps"
"testing"
"time"
)
func TestIPSetAction_Init(t *testing.T) {
2024-01-21 11:13:30 +08:00
_, lookupErr := executils.LookPath("iptables")
if lookupErr != nil {
return
}
var action = iplibrary.NewIPSetAction()
2021-02-06 17:34:33 +08:00
err := action.Init(&firewallconfigs.FirewallActionConfig{
Params: maps.Map{
"path": "/usr/bin/iptables",
"whiteName": "white-list",
"blackName": "black-list",
},
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
func TestIPSetAction_AddItem(t *testing.T) {
2024-01-21 11:13:30 +08:00
_, lookupErr := executils.LookPath("iptables")
if lookupErr != nil {
return
}
2022-03-16 20:47:55 +08:00
var action = iplibrary.NewIPSetAction()
action.SetConfig(&firewallconfigs.FirewallActionIPSetConfig{
Path: "/usr/bin/iptables",
WhiteName: "white-list",
BlackName: "black-list",
WhiteNameIPv6: "white-list-ipv6",
BlackNameIPv6: "black-list-ipv6",
})
2021-02-06 17:34:33 +08:00
{
2022-03-16 20:47:55 +08:00
err := action.AddItem(iplibrary.IPListTypeWhite, &pb.IPItem{
2021-02-06 17:34:33 +08:00
Type: "ipv4",
Id: 1,
IpFrom: "192.168.1.100",
ExpiredAt: time.Now().Unix() + 30,
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
{
2022-03-16 20:47:55 +08:00
err := action.AddItem(iplibrary.IPListTypeWhite, &pb.IPItem{
Type: "ipv4",
Id: 1,
IpFrom: "1:2:3:4",
ExpiredAt: time.Now().Unix() + 30,
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
{
err := action.AddItem(iplibrary.IPListTypeBlack, &pb.IPItem{
2021-02-06 17:34:33 +08:00
Type: "ipv4",
Id: 1,
IpFrom: "192.168.1.100",
ExpiredAt: time.Now().Unix() + 30,
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
2022-03-16 20:47:55 +08:00
{
err := action.AddItem(iplibrary.IPListTypeBlack, &pb.IPItem{
Type: "ipv4",
Id: 1,
IpFrom: "1:2:3:4",
ExpiredAt: time.Now().Unix() + 30,
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}
2021-02-06 17:34:33 +08:00
}
func TestIPSetAction_DeleteItem(t *testing.T) {
2024-01-21 11:13:30 +08:00
_, lookupErr := executils.LookPath("firewalld")
if lookupErr != nil {
return
}
var action = iplibrary.NewIPSetAction()
2021-02-06 17:34:33 +08:00
err := action.Init(&firewallconfigs.FirewallActionConfig{
Params: maps.Map{
"path": "/usr/bin/firewalld",
"whiteName": "white-list",
},
})
if err != nil {
t.Fatal(err)
}
2022-03-16 20:47:55 +08:00
err = action.DeleteItem(iplibrary.IPListTypeWhite, &pb.IPItem{
2021-02-06 17:34:33 +08:00
Type: "ipv4",
Id: 1,
IpFrom: "192.168.1.100",
ExpiredAt: time.Now().Unix() + 30,
})
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}