mirror of
https://github.com/gravitl/netmaker.git
synced 2025-11-08 07:41:41 +08:00
fix for GRA-129 prevent freebsd from being a gateway
This commit is contained in:
parent
a1f07ef78c
commit
dd62e90924
3 changed files with 15 additions and 9 deletions
|
|
@ -13,6 +13,7 @@ func TestCreateEgressGateway(t *testing.T) {
|
||||||
var gateway models.EgressGatewayRequest
|
var gateway models.EgressGatewayRequest
|
||||||
gateway.Interface = "eth0"
|
gateway.Interface = "eth0"
|
||||||
gateway.Ranges = []string{"10.100.100.0/24"}
|
gateway.Ranges = []string{"10.100.100.0/24"}
|
||||||
|
gateway.NetID = "skynet"
|
||||||
database.InitializeDatabase()
|
database.InitializeDatabase()
|
||||||
deleteAllNetworks()
|
deleteAllNetworks()
|
||||||
createNet()
|
createNet()
|
||||||
|
|
@ -21,9 +22,17 @@ func TestCreateEgressGateway(t *testing.T) {
|
||||||
assert.Equal(t, models.Node{}, node)
|
assert.Equal(t, models.Node{}, node)
|
||||||
assert.EqualError(t, err, "could not find any records")
|
assert.EqualError(t, err, "could not find any records")
|
||||||
})
|
})
|
||||||
|
t.Run("Non-linux node", func(t *testing.T) {
|
||||||
|
createnode := models.Node{PublicKey: "DM5qhLAE20PG9BbfBCger+Ac9D2NDOwCtY1rbYDLf34=", Name: "testnode", Endpoint: "10.0.0.1", MacAddress: "01:02:03:04:05:06", Password: "password", Network: "skynet", OS: "freebsd"}
|
||||||
|
err := logic.CreateNode(&createnode)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
gateway.NodeID = createnode.ID
|
||||||
|
node, err := logic.CreateEgressGateway(gateway)
|
||||||
|
assert.Equal(t, models.Node{}, node)
|
||||||
|
assert.EqualError(t, err, "freebsd is unsupported for egress gateways")
|
||||||
|
})
|
||||||
t.Run("Success", func(t *testing.T) {
|
t.Run("Success", func(t *testing.T) {
|
||||||
testnode := createTestNode()
|
testnode := createTestNode()
|
||||||
gateway.NetID = "skynet"
|
|
||||||
gateway.NodeID = testnode.ID
|
gateway.NodeID = testnode.ID
|
||||||
|
|
||||||
node, err := logic.CreateEgressGateway(gateway)
|
node, err := logic.CreateEgressGateway(gateway)
|
||||||
|
|
@ -139,7 +148,7 @@ func deleteAllNodes() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func createTestNode() *models.Node {
|
func createTestNode() *models.Node {
|
||||||
createnode := models.Node{PublicKey: "DM5qhLAE20PG9BbfBCger+Ac9D2NDOwCtY1rbYDLf34=", Name: "testnode", Endpoint: "10.0.0.1", MacAddress: "01:02:03:04:05:06", Password: "password", Network: "skynet"}
|
createnode := models.Node{PublicKey: "DM5qhLAE20PG9BbfBCger+Ac9D2NDOwCtY1rbYDLf34=", Name: "testnode", Endpoint: "10.0.0.1", MacAddress: "01:02:03:04:05:06", Password: "password", Network: "skynet", OS: "linux"}
|
||||||
logic.CreateNode(&createnode)
|
logic.CreateNode(&createnode)
|
||||||
return &createnode
|
return &createnode
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,12 +14,12 @@ import (
|
||||||
// CreateEgressGateway - creates an egress gateway
|
// CreateEgressGateway - creates an egress gateway
|
||||||
func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, error) {
|
func CreateEgressGateway(gateway models.EgressGatewayRequest) (models.Node, error) {
|
||||||
node, err := GetNodeByID(gateway.NodeID)
|
node, err := GetNodeByID(gateway.NodeID)
|
||||||
if node.OS == "windows" || node.OS == "macos" { // add in darwin later
|
|
||||||
return models.Node{}, errors.New(node.OS + " is unsupported for egress gateways")
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
}
|
}
|
||||||
|
if node.OS != "linux" { // add in darwin later
|
||||||
|
return models.Node{}, errors.New(node.OS + " is unsupported for egress gateways")
|
||||||
|
}
|
||||||
err = ValidateEgressGateway(gateway)
|
err = ValidateEgressGateway(gateway)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
|
|
@ -113,7 +113,7 @@ func DeleteEgressGateway(network, nodeid string) (models.Node, error) {
|
||||||
func CreateIngressGateway(netid string, nodeid string) (models.Node, error) {
|
func CreateIngressGateway(netid string, nodeid string) (models.Node, error) {
|
||||||
|
|
||||||
node, err := GetNodeByID(nodeid)
|
node, err := GetNodeByID(nodeid)
|
||||||
if node.OS == "windows" || node.OS == "darwin" { // add in darwin later
|
if node.OS != "linux" { // add in darwin later
|
||||||
return models.Node{}, errors.New(node.OS + " is unsupported for ingress gateways")
|
return models.Node{}, errors.New(node.OS + " is unsupported for ingress gateways")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,6 @@ func CreateRelay(relay models.RelayRequest) (models.Node, error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return models.Node{}, err
|
return models.Node{}, err
|
||||||
}
|
}
|
||||||
if node.OS == "macos" { // add in darwin later
|
|
||||||
return models.Node{}, errors.New(node.OS + " is unsupported for relay")
|
|
||||||
}
|
|
||||||
|
|
||||||
err = ValidateRelay(relay)
|
err = ValidateRelay(relay)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue