mirror of
				https://github.com/gravitl/netmaker.git
				synced 2025-11-01 00:49:04 +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